Don’t just learn how to code, have some goals that will make you a Confident Developer.

As a beginner, your goal should be to start easy. (Don’t sweat)

Learn, ask questions and listen to your peers or fellow developers. Get yourself into the tech scene and build connections.

Read other people’s code. I can’t stress this enough. Go to your favorite website and view the source code. You will learn a ton.

Build something by following tutorials and reading books.

When you are learning a programming language choose something that you can create out of it. If you are learning HTML & CSS, what about a static website for yourself that incorporates everything you have learned.

Building projects will toughen up your skills and you will feel more confident.

There has been a thread posted on a Reddit’s subreddit /r/learnprogramming what are some goals a beginner self-taught should have while learning to code?

A lot of programmers gave so many good suggestions and I’m gonna break it down the important ones for you.

Developer with no degree, no formal education in CS

Redditor posted this comment

Lead Developer here, completely self taught. No degree, no formal education in CS. In my opinion..

  • It’s more about thinking than it is about slinging code.
  • It’s 10 x more about learning and research than it is about syntax/frameworks. – if you do Coursera’s Learning How To Learn you’ll save yourself years.
  • Little and often is more effective than single big sessions.
  • Persistence > Knowledge.
  • Understand how your subconscious mind works and how you can lean on it to solve problems.
  • Get plenty of sleep.

Make your code look Readable

Another Redditor posted this

Learning syntax is the first step, but it is incredibly important to learn to create readable code. Writing code is like writing a paper. Getting the code down and the logic correct is your first draft, but what makes good code stand out from bad code is the extra effort put in to revise and refactor it into something that is robust, readable, and reusable.

 

I totally agree with him, learning syntax is important, doesn’t matter what programming language you’re learning. But it’s important to organize your code.

Let’s be honest, if you look at the source code of any website, it looks UGLY.

There’s no way you can make it look beautiful but you can organize your code in such a way that makes it easier for anyone to read.

If you see the picture below, the code looks ugly but it’s upto you to make it look better and readable so people can easily navigate through it.

Don’t memorize everything

Another Redditor posted this and I totally agree with him. You simply cannot learn everything in a day or two. Also, you do not need to memorize everything there is to learn.

Patience. You cannot learn everything in a day. Take your time, now is probably the best time in the history of computing to learn… You have more resources to learn (information freely shared, computing resources, etc…) than ever.

Never memorize something that you can look up. — Albert Einstein 

If you can find something easily on the internet, you do not need to memorize that. Instead, focus on solving a particular problem, that’s your ultimate goal should be.

Junior and Senior developers don’t memorize the entire documentation of a particular technology. They just go online and look up the documentation for whatever they are looking for.

Set Milestones

Another Redditor posted this

Learn to estimate your work.
The transition from “let’s try something fun until I’m tired” to “How long would your suggestion take?” is hard especially for self-taught devs.

Set yourself “observable milestones” such as “Print button actually prints something nice”, give it an estimate, write that down, and track your time. Compare.

Be honest to yourself. Did you really complete the milestone, or does the “print” button print something plausible, but not actually what you need?

This requires the almost mechanical skill to track your time spent, the mental focus to stay on topic (instead of fixing whatever crosses your path), and the almost artistic skill of coming up with a useful estimate.

(Estimation can be a black art, don’t want to go too deep here. But even with the first two you are already ahead.)

Include all artifacts
It’s the most common mistake in estimation, and the one that devs can still get wrong after years: Print does print, but the manual isn’t updated, some more tests should be written, the keyboard shortcut still needs to be wired up and setup needs to include the Printer Abstraction Adapter Runtime.

The feature is not done until it can be published.

Publish
Have someone use your software. Ideally, watch them using it. Find some sympathetic victim, offer some prize money, whatever. This is the best answer to “Am I finished?” you’ll ever get – and self-taught devs tend to lack that experience.

Go back
Come back to your code base after half a year or more of inactivity. Fix a bug and add a feature.

Teaches you humility and maintenance, which is roughly 40%…80% of development work.

Build Portfolio

Another Redditor posted this about building a portfolio.

I’d develop a really well made portfolio of various projects so people can immediately understand what you’re capable of.

 

Never underestimate the power of your portfolio. Build stuff that you can be proud of, doesn’t matter what. A blog website, photo slider, Web Scrapper. To-Do app, Resume portfolio etc.

Once a client sees your portfolio and the amount of stuff you have built, that’s when he/she knows what you’re capable of. Your work speaks for itself.

Build something practical

Another Redditor posted this

Being able to make ‘things’. It doesn’t matter if they are super technical or anything just being able to apply the theory or stuff you’ve read will cement it in your head and you will find that your problems are no longer in writing the actual code but to visualise the systems you create and bringing them into being. As a CS uni student the thing I see most often are students who study programming theory a lot but can’t contribute much in actual projects or what not. Also its nice to look back on the projects that boggled your mind a year ago and to have a nice laugh at your former self

Understand set logic and boolean logic

Another Redditor posted this

I think that understanding set logic and boolean logic will go a long way towards helping you understand some of the higher order stuff people are doing, but you don’t have to understand that on day one. 

Just because there’s a pattern to the code, doesn’t mean you need to memorize the pattern. You should learn the reason for the pattern. That’s how you become a better developer, knowing why the pattern, so the pattern becomes second nature.

GitHub

Another Redditor posted this

Learn Git. Make a GitHub account.

Start projects and more importantly, finish them. (and put them up there, of course)

Connect with others developers, there are plenty of Slack/Discord/Gitter servers. (I can invite you to our own Discord server) It’s fun interacting with other devs and you learn a lot from it.

Understand the Business Value

Another Redditor posted this

If you want to work in this field: Understand the business value you cant always write the fanciest code just because you want to. Often it has to be practical: cheap, short timeframe and maintainable for many years to come by someone other than you

 

The amazing thing about teaching yourself is that you can set your own goals.

And with introduction of technologies such as Node.js you don’t need to know tons of programming languages, all you need is a Roadmap to Front-End & Full-Stack Development with Javascript stack 

That’s it folks!

I hope you enjoyed reading this blog. If you have a question or any thoughts, leave your comment below.

Author:

Web Developer - Learnaholic - Reader -- I'm passionate about Marketing, Growth Hacking, Business and Web Technology. When I’m not working, I love reading books, learning new skills and indulging my love for seeing new places. I love running, reading books and business blogs.