Learning Programming Languages

I get a lot of questions from people asking how they might learn to program.
My response is always something along the lines of “Find something you want to do and go find what you need to do it”.

But that response seems to put people off. They want a straightforward answer, something to do, something to try.

So today I’m vetting this site called “Code Academy”. To see if it is a viable tool for learning a programming language.

It seems to work well enough, it presents you with the basic rules of the programming language, has you type a few statements, has you make some mistakes and has you correct them.

However, the thing that kind of upsets me about tools like these is that they kind of suck the fun out of programming.
You’re stuck “Coding on the rails”. The site tells you to do something, you type it in, you run the program. If the output isn’t exact, you lose.

Which is really frustrating ( I had to comment out my code because it wasn’t what they wanted )

Programming is all about exercising control over the computer, that’s what makes it so exciting. But now you’re not in control, someone else is. You just do the typing.

I understand that for some, this is kind of the way it needs to be. They need a little bit of hand holding to figure the thing out. But the question is, will it get boring for them? Will they lose sight of what is really interesting, what they are really accomplishing?

Because at the end of the day, you’re telling a computer what to do, and it does it for you!
That fact alone is amazing, and tools like Code Academy seem to hide or downplay this concept.

I’ll continue playing with this though, maybe they change things up, loosen the reigns a bit.
We’ll see.


I have literally the same thoughts about Code Academy as well.

It becomes more, figuring out how the prompt wants you to do it, then actually writing the code.

As an example, I tried learning Python and JavaScript off of Code Academy, and while I understood it a bit, if I were to go back and attempt to code in those languages again (eh I don’t see myself writing Python though), I’d pretty much have to spend some time re-learning it because I don’t felt like I learned anything. Just followed Directions.

I learned the programming languages I know now (PHP, HTML I know its not a programming language, C#, Java), just by opening up a Text Editor and IDE, and just go in blind. Use Google until the cows come home. If/else statements become Switches. Eventually you stop Googling, because you remember and understand how something works.

Codecademy is very introductory and not meant to be a resource for you to completely learn a language. Honestly, for what it does, it’s great. It teaches you the basics and some intermediate/advanced topics and helps push you into the world of coding. I wouldn’t use it as your teacher rather a supplement. Absolutely great for newbies to the field.

You’re absolutely right. Code Academy appears to be a decent introduction to programming. It explains some of the basic concepts and sets you up with an interpreter so you don’t need to setup your own workflow.

My question is this: Is there a better way to help someone teach themselves programming? Is there a way to hand someone a compiler and a bunch of code and say “screw around with this and see what happens”?

I think that in order to become a good programmer you need to have a knack for experimentation. And I think having a tool that teaches that would be more worthwhile. I just don’t know what that would look like.

1 Like

I would have to argue that this is indeed the best way to promote programming, yet there doesn’t seem to be a service out there that can effectively instruct and complete the aforementioned goal at the same time.

The issue to me just stems from the fact you aren’t connecting with a person instruction rather it’s automated itself. I can’t see how to carry out the “screw around with this and see what happens” unless we either develop some AI for just use people.

I am personally registered in Code Academy, yet I am still to try using it to learn anything at all. I would like to push this conversation future tough. One argument I have seen against Code Academy is that it causes the illusion of learning than actually teaching you how to use code. Since you guys are used to it, how do you reply to that argument?

I personally learned the bits and bits I know today by messing around in code. But one of the most efficient things I saw that helped me learn C# to today where two: One is to first understand the syntax of the code by reading about it. Basically, following tutorials that explain the basics, before even getting to it, since it let’s you learn how to write it. The Second one, is to watch some one code it. I’m pretty sure in this case most people will be opened to the idea of explaining what they are doing while they code, specially if they are also video-tutorials.

That’s really just my opinion. Anyone want to matter in?

I have failed programming class 3 times in college, its not that programming is hard, but its just that finding programming fun is hard. You get too bored, and then you gradually forget ab it and loose interest. Methods I use to keep myself entertain.

My method- Learn project wise. Screw those stupid **sonauwitch academic books and go google search stuff like “DIY C mario”, “how to make blackjack in c”, “java puzzle board”. Find a project you would be interested in learning. You will learn programming automatically. Yes this is an unorthodox method, but it works, at least it keeps you entertain. Once you have some knowledge of programming, go to your favorite games and start modding them, that’s one way I learned programming. College never helped me, instead my hobby of modding games, and making games helped me pass college programming easily. Now I find it fun, although I still have a long way to go, as I am mostly able to read/edit codes but find is extremely tiring to make my own scripts. It helps you by forcing you to learn codes that you dont understand, while working on a game, if I dont understand a concept I google search for similar examples. This way is much better than your fu__ university programming class, as this teaches you programming while you litrary use it to create something rather than just learn the basics and have no clue on using in real life applications.

I am also a traditional and a digital artist, but since Illustrator had no use in my everyday daily life, I suck at it. So how I am trying to learn is by my project method. I find projects that are fun to do, and I follow along. By the time I have finished about 10 projects I will be very experienced in illustrator.

Also learn by numbers, if something you find tooooo boring or hard to learn, then learn by doing those projects about 50 times or 100 times. You suck at drawing? Draw a tutorial character from start to finish 50 times, you’ll start enjoying drawing and see that your hands will automatically start drawing that character better the first time.

Tip:start from C. The abcd of programming. Once you understand all the basic and is able to edit and fix scripts move to Lua or java, and go mod those favorite games of yours. You’ll be pro in no time.