d2jsp
Log InRegister
d2jsp Forums > Off-Topic > Computers & IT > Programming & Development > Web Development
Add Reply New Topic New Poll
Member
Posts: 6,291
Joined: Jul 2 2005
Gold: 1,025.41
Mar 19 2022 09:16pm
Hi everyone,

I started learning web development this year. I am currently learning HTML5 and should learn it well by the end of this month. I also will be learning CSS3, Javascript, Node.JS and probably SQL sometime this year.

I am going to try and apply to a full stack position by the end of this year. I acutally live near San San Francisco, which about 30 miles away.

Anyways, anyone have tips or advice on learning web development or coding in general?
Member
Posts: 213
Joined: Apr 13 2021
Gold: 3,578.00
Mar 20 2022 12:30am
Practice

Try to optimize the code after you are done

Look at other peoples code

Try to optimize their code

Practice
Member
Posts: 6,301
Joined: Feb 7 2009
Gold: 10,519.37
Mar 21 2022 10:25am
Practice.

Write code is the only way, then you google stuff you can’t figure out.
Importance is that you are not just copy pasting solution but actually try to understand the code
Member
Posts: 1,579
Joined: May 11 2007
Gold: 1,514.18
Mar 21 2022 07:23pm
Quote (hakimtp @ Mar 19 2022 07:16pm)
Hi everyone,

I started learning web development this year. I am currently learning HTML5 and should learn it well by the end of this month. I also will be learning CSS3, Javascript, Node.JS and probably SQL sometime this year.

I am going to try and apply to a full stack position by the end of this year. I acutally live near San San Francisco, which about 30 miles away.

Anyways, anyone have tips or advice on learning web development or coding in general?


those are all good skills.

for finding a career - look at full stack positions in your area and find out what tech stack they are using and start learning that.

for coding advice - always try to write simple code with comments that other people will understand. if you get a position you will work in a team and believe me when your coworkers or predecessor writes simple code it makes everything much easier. also test your code often before writing large amounts at once. first manually but as your project grows you will need to learn to use automated tools.
Member
Posts: 2,957
Joined: Aug 29 2011
Gold: 0.00
Apr 21 2022 01:29am
Have a portfolio site, have good looking fully built projects to show, pay a resume writer that specializes in software resumes (invest a couple hundred dollars. Well worth it)

Read the complete software developer's career guide by John Sonmez. I wish I would have read this book earlier in my career.
Member
Posts: 105
Joined: Jul 18 2011
Gold: 300.00
Apr 28 2022 03:55am
When starting out it is important to cultivate the right attitude, be humble, learn everything you can and always push yourself to keep learning, you will constantly be training when taking this career path, enjoy the ride!

* Always challenge your assumptions, don't assume you know something for certain, take the time to understand how it works and why.
* Develop a pragmatic approach to problem solving, developers / software engineers etc are really just problem solvers, really think about what you are doing, break the problem or project down into small achievable steps and prioritise them.
* Expose yourself to as many problems / projects as you can this will help you reach your potential faster.
* Practice good habits always, write clean code, be consistent and use version control.
* Don't underestimate the importance of soft skills, a lot of companies look at cultural fit as much as technical knowledge, being able to explain your thinking, give constructive feedback and accept critique is important, and above all you can't teach someone not to be an asshole.
* Fail fast, iterate quickly, the idea is to validate or invalidate your approach to a problem as quickly as possible and not get hung up on focussing one particular thing, make it good enough and move on, then when time allows come back and optimise and improve.

That's it for the softer stuff, now for some more concrete advice.


Focus on the fundamentals, HTML / CSS are markup languages that are used for presentation and while they are important for full stack positions they are generally shallow enough to pick up as and when you need them.

I would personally spend the majority of my time learning and practicing your programming language of choice which seems to be JavaScript, for all the bashing JS gets it really does give you some terrific transferable skills where it can be used in the front end or the backend and even mobile applications.

Some resources for learning JavaScript:
Pluralsight has a 7 day free trial, this as a professional is absolute gold, video courses by decent instructors, it can help you pickup the fundamentals of a given technology quickly: https://www.pluralsight.com/
If you prefer to read Eloquent JavaScript is a great free resource that focuses on the basics of JavaScript, it doesn't cover everything but its enough to help you get going and figure out what you don't know: https://www.pluralsight.com/
If you want something more complete The Odin Project offers a free full stack JavaScript course: https://www.theodinproject.com/paths

HTML / CSS and JS are really just gateway drugs, once you have a good grasp of the aforementioned technologies you could look at picking up a front end framework.

These front end frameworks help you to avoid reinventing the wheel and deliver faster, they are also desirable when looking for work.

Below is some of the most popular feel free to go look for others:
* React: https://reactjs.org/
* Angular JS: https://angularjs.org/
* Vue: https://vuejs.org/


Now for the backend Node.js, personally I love node, its light, scalable, easy to work with and allows you to iterate quickly.

As you gain experience with JavaScript and Node.js you will find yourself hitting common problems and coming up with your own solutions, i.e. formatting the date, connecting to a database, making calls to third party services or event writing your own content management system...

I must stress rolling your own solution is completely fine and actually a very useful learning exercise, you will get it wrong the first time, everyone does and that's okay, every mistake is an opportunity for growth.

What's important is that you eventually learn to spot these opportunities and ask yourself, do I need do this myself or should spend that time focussing the custom needs of my problem / project.

Now these opportunities come in all shapes and sizes but a few examples might be:
* You have a date time string in a weird format and you need to convert it to a date object, you could write the code yourself or you could use the Moment.js library to do the heavy lifting.
* You a freelance project to create a blog for someone, you could spend many days of your life creating your own blog from scratch or use something off the shelf and customise it like Django or whatever.

There is no one size fits all answer its all about the needs of your problem or project, experience will have you find the answer to this more quickly.

The point is pick and choose where you think it best to spend your time and take some time to familiarise yourself with the ecosystem of libraries, frameworks, resources etc that are related to your programming language of choice, it will make you far more effective.


So now you are kicking ass and churning out code, the next natural step in my eyes is understanding version control.

Understanding a popular version control system is very important, it will make your life harder but it may also save it, it also a desirable skill when hiring.
Version control allows you to save snapshots of your work and collaborate with others on your project in a more disciplined and managed way.

One of the most popular version control systems is Git (https://git-scm.com/), it can be difficult to begin with but it can be tamed using some good tooling (https://gitforwindows.org/)

Git (or any version control) allows you to track changes to project files, this allows you to see every change ever that happened to your project.
It also allows you to effectively take copies of your project which allows you try something experimental or just work on a new feature in isolation, and then when you are done you can merge your changes back in with the most version of the project.

This makes it incredibly useful when working on an active project with many other developers, it helps you manage those and how they are merged so your changes or others don't overwrite one another.

Further reading on Git: https://www.freecodecamp.org/news/learn-the-basics-of-git-in-under-10-minutes-da548267cc91/

Once you understand Git you can then use GitHub, which puts your files that are versioned and tracked by Git up in the cloud so they backed up, safe and visible (with your consent) to others.

Having a GitHub account is useful as it will allow you to share your work with potential employers, or just collaborate on projects with other developers: https://github.com/


Finally I think testing yourself regularly with new problems is really useful for getting out of your comfort zone and forcing personal growth.

To take the thought out of what should I tackle, you can use coding kata's, these are small exercises that encapsulate some real world problems: http://codekata.com/
Doing these exercises regularly will help you master the fundamentals and develop your problem solving skills.


Apologies this was a bit of brain dump, but if you ever have any questions, drop me a PM.

Good luck on your journey!

Red.

This post was edited by Redellion on Apr 28 2022 04:12am
Go Back To Programming & Development Topic List
Add Reply New Topic New Poll