What's the best way to learn how to code?

Create a project and try to build it adding features along the way. That is what I did. Worked out pretty nice. Weekend developer and all.
 
google -> hello world + programming language of choice.

go from there.

basically, just start doing it. fake it til you make it baby.
 
Start with:
https://www.codecademy.com/
https://www.khanacademy.org/computing/computer-programming

and take it from there. It amazes me sometimes that there are these great free resources yet people um & ah whether programming is for them and are willing to drop $$$ on on actual course to decide. Use those free resources to help you decide which direction you want to go - they're available 24/7 at no cost. Even if you don't want to make a living from coding and have just an interest - it's worth doing those courses.
 
Start from the bottom and learn how computers run the code that you give them.

1) Learn how binary numbers work as well as some Boolean algebra.
2) Learn how to perform basic arithmetic with logic gates.
3) Learn how memory and clocks work.
4) Learn how finite state machines work.
5) Learn how to make a Turing machine from a state machine
6) Learn how to make a basic computer with registers that can follow a set of numerical commands.
7) Write a few basic programs that use the computer that you have designed.

Once you have done this, all other part of programming things like structures,objects and algorithms have an actual place in the body of knowledge instead of being arbitrary things that a hypothetical computer simply does.
 
Create a project and try to build it adding features along the way. That is what I did. Worked out pretty nice. Weekend developer and all.

This for sure. Tutorials and courses can get boring after a while. I learn the most when I've got a project to just dive into. You do need to have a rough idea of where to start though.


For instance if you have an idea for a mobile app look for a basic Android development course rather than learning Java first. If and when you find yourself struggling with the Java code is when you do a quick Java tutorial or course.

It's important to have some idea of what you need to know and what the point of what you're learning is in the real world.

I can't stand the "the dog extends the animal class" approach. When you don't know what a class does in the real world it's just confusing, which I would imagine is fine in a classroom where you've got a captive audience, but for someone trying to figure out what they be able to do with this knowledge it can be off putting.
 
Start from the bottom and learn how computers run the code that you give them.

1) Learn how binary numbers work as well as some Boolean algebra.
2) Learn how to perform basic arithmetic with logic gates.
3) Learn how memory and clocks work.
4) Learn how finite state machines work.
5) Learn how to make a Turing machine from a state machine
6) Learn how to make a basic computer with registers that can follow a set of numerical commands.
7) Write a few basic programs that use the computer that you have designed.

Once you have done this, all other part of programming things like structures,objects and algorithms have an actual place in the body of knowledge instead of being arbitrary things that a hypothetical computer simply does.

I suppose the question was what is the "best" way to learn, so fair enough.

But, for the best way to actually having learnt something practical I'd say start with something pretty abstract like html and css.

Not everyone needs or wants a CS degree and the best way for non-engineers to learn is to get some enthusiasm by seeing your code do something useful on a screen as soon as possible not by learning how to build the computer.

That's a bit like learning to build a car before learning how to drive.
 
I suppose the question was what is the "best" way to learn, so fair enough.

But, for the best way to actually having learnt something practical I'd say start with something pretty abstract like html and css.

Not everyone needs or wants a CS degree and the best way for non-engineers to learn is to get some enthusiasm by seeing your code do something useful on a screen as soon as possible not by learning how to build the computer.

That's a bit like learning to build a car before learning how to drive.

You picked the perfect example: driving. Would you say the roads are particularly safe? Probably not. Have you considered that might be because people don't understand the functions of their car and the physics behind the way cars move?

How many people would allow their brakes to lock if they actually understood the differences between static friction and dynamic friction?
How many people would drive 2m behind someone at 100km/h if they understood what momentum was?
How many people would drive their cars until they get component failure if they understood what the bearings on their wheels actually do?

You look at the qualifications required to become a pilot. They are required to know how their planes are kept in the sky before they are allowed to fly. This allows them to understand mechanics such as head wind and such. This is why flying is statistically safer than driving, despite being significantly more complex and dangerous.


One of the main problems we have is people do not treat programming as the technical skill it actually is. You wouldn't call yourself an electronics designer if all you did was take other people's designs and stitch them together with little knowledge on how they work.
I bet if you deleted stackoverflow, you would find the vast majority of programmers would be clueless.
 
One of the main problems we have is people do not treat programming as the technical skill it actually is. You wouldn't call yourself an electronics designer if all you did was take other people's designs and stitch them together with little knowledge on how they work.
I bet if you deleted stackoverflow, you would find the vast majority of programmers would be clueless.

+1
 
You picked the perfect example: driving. Would you say the roads are particularly safe? Probably not. Have you considered that might be because people don't understand the functions of their car and the physics behind the way cars move?

How many people would allow their brakes to lock if they actually understood the differences between static friction and dynamic friction?
How many people would drive 2m behind someone at 100km/h if they understood what momentum was?
How many people would drive their cars until they get component failure if they understood what the bearings on their wheels actually do?

You look at the qualifications required to become a pilot. They are required to know how their planes are kept in the sky before they are allowed to fly. This allows them to understand mechanics such as head wind and such. This is why flying is statistically safer than driving, despite being significantly more complex and dangerous.


One of the main problems we have is people do not treat programming as the technical skill it actually is. You wouldn't call yourself an electronics designer if all you did was take other people's designs and stitch them together with little knowledge on how they work.
I bet if you deleted stackoverflow, you would find the vast majority of programmers would be clueless.

The analogy falls apart when it comes to the consequences of an ignorant driver vs. An ignorant coder.

The "problem" is that if the world had to rely on (properly trained) CS graduates to do everything a lot less would get done.
 
The analogy falls apart when it comes to the consequences of an ignorant driver vs. An ignorant coder.

Consequences of ignorant coding can be just as damaging as a bad driver, if not worse because people don't consider the full extent of the damage. Myself for example. I develop software that is used to assist doctors with medical decisions. If I f__k up, people get misdiagnosed and die.

That is before you even get to large software projects going over time and over budget because some idiot decided to write their database access using spagettified nested SQL statements, because the goal is just getting it to work instead of getting it to work properly.
 
Consequences of ignorant coding can be just as damaging as a bad driver, if not worse because people don't consider the full extent of the damage. Myself for example. I develop software that is used to assist doctors with medical decisions. If I f__k up, people get misdiagnosed and die.

That is before you even get to large software projects going over time and over budget because some idiot decided to write their database access using spagettified nested SQL statements, because the goal is just getting it to work instead of getting it to work properly.

Ja, well that's kind of a get what you pay for scenario. Medical equipment ain't cheap so one hopes that the manufacturer is paying for a suitably qualified and experienced developer.
 
I am a firm believer that you learn to code the same way you learn a hands on craft like blacksmithing. You only learn when you try it yourself. Self directed with tutorials are great and easy to obtain online but pairing up with other great coders from time to time can rapidly advance your skills in similar fashion to how blacksmith's taught their apprentices.
 
Top
Sign up to the MyBroadband newsletter