No one is really born being good at something, at some point, everyone had to learn. A basketball player has to learn the basics of basketball before he/she can ever considers being great. A chess player would have to learn every piece on the board's capabilities and how to strategically use them. The same logic could be said for nearly any craft, and programming is no different.
If you're new, you probably have many questions. Where do I start? How do I really learn? How do I know if I'm even learning? Am I good enough, and how would I even know if I'm a good enough programmer to get a job? And so on......
Well, here is my advice on this.
*Disclaimer: In no way I, or one single entity, will represent the entire programming community as a whole. If you find evidence conflicting with this by one who is considered a higher authority on the matter. Feel free to refer to it.* So, lets focus on one question at a time. "Where do I start?". This really can depend on what you're wanting to learn, for me, there is no way of knowing this. So I will focus the answers around "core" programming, because regardless if one is programming an IPhone, Droid, Windows, etc... he/she would still have to allude back to core programming capabilities.
Where do I start?
I personally started out with some cool books and video tutorials and suggest you do the same. The video tutorials allowed for easy comprehensions of subjects taught through visual simulations, while the books allowed for a bit more detail. The books also gives one the ability to quiz, and to do small to medium projects, which really helps with the leaning by doing paradigm.
How do I really learn?
An overwhelming amount of teachers, college instructors and professors, and neuroscientist, all agreed that one of the best ways of learning is learning by doing. Of course one has to be shown in some way how to do it, but shortly thereafter is when one should do it. This means if I was to teach you the "switch statement", I would explain and show you a logical example of what it's doing, and then immediately have you to do it yourself about 3 to 5 times. Using this method will increase the cognitive strength of the neurological connections in the brain as it relates to memory and performance.
How do I know if I'm even learning?
Including lots of quizzes and building small to medium size projects are both good tools to help you see if you're learning. I suggest bite sized learning. Focus just on one subcategory at a time. After you're taught the subcategory, write code that utilizes the learned data, and then take the quiz. When you write the code that utilizes the learned data, that's a big indicator that you're in fact "learning". The quiz, if wrote properly, could help you out on some things you may have misinterpreted during the learning. If this happens just go back and study that area. Once you're doing well on quizzes from reputable sources, you can take that as another indicator that you're learning and move on to the next step.
Am I a good enough programmer to get a job?
This is a good question. A lot of very good programmers struggles with the imposter syndrome. A syndrome that makes a person feel like he/she is not good enough, no matter how big their accomplishments. Some programmers go through this and some don't. My answer to this is can you build projects, can you both read and understand code that you have not written. Can you build a solid application for the platform of your choice? A web programmer would be able to create a solid website. A smartphone programmer would be able to create a few basic apps, but solid in the code. If you went through some good programming materials from start to finish using the learning by doing method, the solidity as it relates to your coding strength should be there and at this point my friend, you should be able to get a job in coding. Now I didn't say at Google or anything but you should be able to get hired.
Next blog post.
My next blog post will be about the struggles I went through while learning to code, what I did to overcome it, and the links to the resources I recommend you using. This will include, video tutorials, books, and interactive websites. Thanks for reading. See you next time.