Learning to program for the first time

Tons of functions, strange use of words, strange use of punctuation symbols, and you’ve got to solve problems and and debug. Welcome to programming! For real though, it’s no use being intimidated. You might be, but this is my attitude towards dealing with it: it’s kinda useless.

The following is some advice I think you’ll find useful, and I hope it helps you have a better time than of pulling your hair out. I wrote it as a comment in a Reddit thread, so it was not aimed at [I]GCSE/A Level students, but I think you can use it.


Let me first get the subreddit r/learnprogramming out of the way. If you don’t know about it, highly recommend looking there for doubts or advice. I would also strongly advise checking out their FAQ, particularly the first 2-3 questions if you’re just getting started. They make points about attitude and project-based learning, which are spot on from my experience. Of course, you also have r/learnpython, or other language-specific subreddits (and indeed, places elsewhere on the internet) at your disposal.

Next, there are two broad kinds of languages: ones like HTML and CSS that mostly help humans tell some kind of “content” or “data” to a computer, as opposed to programming languages like C++, Python, Java etc which help you give “instructions”. As long as you can pick which camp you want to be in (probably the second one), the specific language doesn’t matter too much in the long run—so long as you don’t pick something so niche that you have trouble asking for help. In that vein, I would strongly recommend the playlist Think Like a Coder, which will help you pick up some of those important important important skills/intuition and get a sneak-peek without tying you to a specific language. Honestly, I started watching it for learning but stuck around for the great story.

But you gotta start somewhere, and you’ll eventually have to chose a language. I would usually suggest people choose from C++ and Python. C++ is somewhat more “complex” in that it takes you more code to accomplish a given task, but you also have more granular control and freedom. In the long run C++ (or its predecessor C, if you want more challenge), gives you a great handle of the key skills, which translate over to most languages. Python is the other extreme, and makes stuff as close to plain English as possible; it’s also highly recommended for beginners. Then there are languages like Java, C#, JavaScript etc etc, which might be considered to sit somewhere in the middle of that spectrum, and are great choices too. Personally I would initially stay away from C# (because of you usually have to depend on something called .NET, and it might be confusing to sort out pure C# vs .NET) and JavaScript (because most courses assume knowledge of HTML and CSS), but they’re popular choices for very valid reasons. All of these languages have tons of practical real-world applications and good community support.

Finally, I would suggest you start with some course. That helps you get some sense of familiarity, with everything ranging from concepts and syntax to the software you’d be using to write code in, and I’ve found that really helpful. As advised in the aforementioned FAQ, it really helps to have a personal project or goal to keep you motivated. Once you’ve gained some experience (maybe once you understand basic control structures, variables/identifiers, and perhaps functions), you can begin to search for more specific courses to suit your interest or needs. Plus, me (and, more importantly, the rest of the internet) are always there to help!

 

Thanks for coming to my TED talk, and all the best! Have fun :)