Jump to content

How to Get Into Coding - The How-To!

VulsaviiK

Since there's a "How do I start learning code" thread started every couple of days, here's an ultimate "How to" guide. The aim of this is to run through basically what you need to know to start coding, or, more importantly, where to start. Through this guide I'm going to cover some frequently asked questions, common resources, and the sorts of things new programmers should be looking to learn.

 

(Side note: mods, can we either sticky this or get someone to write a guide to cover this topic?)

 

What Language Should I Learn As a New Programmer?

 

Probably one of the most frequent question I've seen on here. The simple answer is "It doesn't matter", since as a beginner, the concepts surrounding programming are far more important than the specific language. A good programmer could start writing in a new language in mere weeks, though, there is always something new to learn. Sure, some languages perform better than others. But poorly written code in a resource-efficient language might not run any better than well written code in a language that is less resource-efficient.

 

The long answer is, well, it largely depends. There are three separate approaches one could take here. You could either:

1) Choose a language that best suits your intended development purpose, and start from there.

2) Choose a "beginner friendly" language, one intended to be easy for new-comers to pick up.

3) Choose a language that will give you a deeper understanding of how everything works.

 

Ultimately learning how to problem solve, learning design patterns, best practices and standard conventions, and algorithms, are going to get you much further than than learning a specific language.

 

Which Language Should I Learn To Do X Thing?

 

Here's a list of some commonly used languages for specific platforms or use-cases:

 

Windows - C++, C# and Java are probably the most commonly used languages for developing applications for Windows

 

Linux - Pretty much anything

 

Mac OSX - Swift and Ruby

 

Android - Java

 

iOS - Swift

 

For Websites - HTML, CSS, JavaScript PHP, SQL

 

NOTE: It is possible to develop desktop or mobile apps using mobile languages using tools such as Electron or Phonegap, though you'll need to do a little bit of research on the subject in your own time

 

Special mentions to Ruby, which I haven't included specifically in any of the above, but can be used for almost all of the above

 

Which Language Is Should New Programmers Learn?

 

If you study programming at a University (Or College), or in formal education at all, 50/50 chance the introductory programming subject will be either Java or Python. Ruby is also a fairly easy language for new-comers, as much of the focus of that language is easy, clean syntax.

 

If you want to learn a little bit more about how your code works, then you should try learning C at some stage (Assembly if you're REALLY keen, but I must emphasize that Assembly can be tricky, and isn't widely used outside of programming micro-controllers)

 

If your intention is to learn how to make websites, you should instead learn the above-mentioned Web Languages. All of them.

 

What Should I Learn If I'm Learning Programming?

 

There are a number of key concepts you should learn as a new programmer:

 

-Basic syntax for the chosen language

-Data types and variables (Numbers, Characters and Strings)

-Keywords and built-in functions of the chosen language, and how to use them

-Decision making (If/Else and Switch cases)

-Loops (For, While)

-Arrays

-Functions

-Operators

 

Once you have a handle on that, some things you might want to learn include for desktop and mobile apps:

 

-Functional and Data Abstraction

-File I/O

-Implementating Efficient Code

-Conventions and Writing Clean Code. This becomes more important as you find your feet and begin writing larger apps

-Building a GUI

-Eventually you may want to do some reading on Algorithms. If you study at a tertiary institution, Algorithms will generally be an advanced programming course

-Memory management (If learning a language like C or C++)

-Debugging. Handy for figuring out where something is breaking, and checking for memory leaks (The latter probably won't happen in high-level languages like Java and Python, as memory management is handled for you)

 

If you learn web languages, you will want to learn about:

-Responsive Design (Making pages scale to window/screen size)

-Dynamic Page Generation

-Storing/Loading external data

 

How Do I Write Code?

 

There are two main approaches here.

 

The first is to use an IDE (Interactive Development Environment). The three most common are Eclipse, Netbeans and Visual Studio. These contain advanced features and are an "all-in-one" solution, comprising a set of tools including a debugger and compiler in addition to allowing you to write code.

 

The second is to use a text editor and a compiler (Plus an interpreter if using a language like Java)

 

Some text editors you may want to use include Notepad++ or Sublime, though a popular choice for web developers write now is Atom.io. Note that compilers are language specific.

 

Speaking of Web Development, you will need a PHP processor if that's what you're doing.

Note that setup of a development environment is generally covered in introductory guides

 

What Are Some Good Resources To Learn From?

 

Some popular resources for beginners:

-Lynda.com

-Tutorials Point

-Stanford's programming courses on iTunes U

-Codecademy

-How To Think Like A Computer Scientist (Link - Thanks to SSL for this one)

 

Whilst you can ask questions here on linustechtips, you aren't likely to get a complete set of tutorials. Try and learn from the above resources, and if you get stuck, feel free to ask questions (Remember to use Code tags)

 

So get in there kids, get your "Hello Worlds" going, and have fun!

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

2 minutes ago, VulsaviiK said:

 

What Language Should I Learn As a New Programmer?

 

the answer is python

not "it doesnt matter"

 

2 minutes ago, VulsaviiK said:

 

What Are Some Good Resources To Learn From?

 

you didnt even mention codecademy, one of the most popular free places to learn

 

 

 

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, Enderman said:

the answer is python

not "it doesnt matter"

 

you didnt even mention codecademy, one of the most popular free places to learn

 

 

 

i learned programming with lua, and then HTML, CSS and JS, haven't even touched python lol :)

you can learn programming without python :)

 

i do agree with point 2 though :)

Link to comment
Share on other sites

Link to post
Share on other sites

4 minutes ago, Enderman said:

the answer is python

not "it doesnt matter"

 

you didnt even mention codecademy, one of the most popular free places to learn

Edited to add Codecademy. I am also writing this at like, 5am, so, sorry if it slipped my mind

 

Which language to learn first, I've seen that question start many a flame-war. I did mention Python as a good beginner language further down, but ultimately learning key concepts and how to write good code are more important than learning a specific language.

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

I plan on learning C++ so that I can create programs for Windows and games in the Unreal engine. I know that languages such as Java are good for starting out, but what if I want to start out with C++ so that right away I can use what I learn instead of having to wait until I finish learning one language before moving to C++. Would that be reasonable at all?

i7-4790k | MSI Z97 GAMING-5 | Corsair Vengeance 16 GB | Samsung EVO-850 250GB SSD & WD blue 1 TB HDD | EVGA 1070 SC | Red NZXT H440 | Cooler Master G650W

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 minute ago, Railgun said:

I plan on learning C++ so that I can create programs for Windows and games in the Unreal engine. I know that languages such as Java are good for starting out, but what if I want to start out with C++ so that right away I can use what I learn instead of having to wait until I finish learning one language before moving to C++. Would that be reasonable at all?

 

You can, and in fact I know many a people who have. Some successfully, others... Not so much.

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Frankly, this is basically a guide on how to turn out shit coders. "Coding" is really only a small part of software development.

 

People should instead focus on developing their problem-solving and critical thinking skills. Work on developing an understanding of algorithms, design patterns, and best practices. Make sure to have at least a basic understanding of computer architecture. Don't be like the contractor my concurrency professor was talking about today, who for the sum of $10000 provided an application with Bubble Sort in-lined three times. A pure bottom-up approach to learning this stuff is just not workable for the majority of people.

Link to comment
Share on other sites

Link to post
Share on other sites

Very good initiative!

 

I would argue this point though:

6 minutes ago, VulsaviiK said:

DataBases - MySQL. This is handy pretty much regardless of what you're doing, whenever you need to store data between multiple instances of an app, this is how it's done

What you use to interact with a database is SQL or NoSQL (in case of non relational databases) so that's the "language" you use. 

 

MySQL is one of many RDBMS (Relational database management system) it's not a language. I would argue that PostgreSQL is a better alternative when going open source but I think in a post like this it might be nice to link to the wiki listing the most common once just for completeness. https://en.wikipedia.org/wiki/Relational_database_management_system

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, mikat said:

i learned programming with lua, and then HTML, CSS and JS, haven't even touched python lol :)

you can learn programming without python :)

 

i do agree with point 2 though :)

i never said you needed python

9 minutes ago, VulsaviiK said:

Edited to add Codecademy. I am also writing this at like, 5am, so, sorry if it slipped my mind

 

Which language to learn first, I've seen that question start many a flame-war. I did mention Python as a good beginner language further down, but ultimately learning key concepts and how to write good code are more important than learning a specific language.

the point is that python is a great language to start with because it lets you get good at actually programming without having to spend a lot of time learning a complicated syntax and forgetting semicolons or whatever

 

yeah you can start with other languages

but its better to start with python, so you know how to code, then you can translate that knowledge to other languages easily

 

 

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

7 minutes ago, SSL said:

Frankly, this is basically a guide on how to turn out shit coders. "Coding" is really only a small part of software development.

 

People should instead focus on developing their problem-solving and critical thinking skills. Work on developing an understanding of algorithms, design patterns, and best practices. Make sure to have at least a basic understanding of computer architecture. Don't be like the contractor my concurrency professor was talking about today, who for the sum of $10000 provided an application with Bubble Sort in-lined three times. A pure bottom-up approach to learning this stuff is just not workable for the majority of people.

I did mention that, though, I may update it and elaborate a little bit more. I figured doing a write-up was going to be a better approach to the almost-daily thread posts asking the same thing. Do you think it's also worth mentioning UML stuff in here as well?

 

8 minutes ago, Hamosch said:

Very good initiative!

 

I would argue this point though:

What you use to interact with a database is SQL or NoSQL (in case of non relational databases) so that's the "language" you use. 

 

MySQL is one of many RDBMS (Relational database management system) it's not a language. I would argue that PostgreSQL is a better alternative when going open source but I think in a post like this it might be nice to link to the wiki listing the most common once just for completeness. https://en.wikipedia.org/wiki/Relational_database_management_system

Thanks, I might just bin that bit. Databases might be something that should be covered in a seperate guide

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Just now, VulsaviiK said:

I did mention that, though, I may update it and elaborate a little bit more. I figured doing a write-up was going to be a better approach to the almost-daily thread posts asking the same thing. Do you think it's also worth mentioning UML stuff in here as well?

 

Daily re-hashes of the same topic are par for the course on this forum because the mods have decided that telling someone to use Google isn't "welcoming". Presenting a utopic image of the forum is more important than getting information out in the most efficient way possible.

 

As for what to include, I think it is less about the details and more about the broad strokes. My favorite introductory tutorial is How to Think Like a Computer Scientist. Blows that Code Academy shit out of the water.

Link to comment
Share on other sites

Link to post
Share on other sites

44 minutes ago, mikat said:

i learned programming with lua, and then HTML, CSS and JS, haven't even touched python lol :)

you can learn programming without python :)

 

i do agree with point 2 though :)

I'm pretty sure I started out with LUA waaaaay back for a Dawn of War project I worked on back in high-school. By the time I go to uni, I'd forgotten pretty much everything I did :/

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

Quote

Linux - Python, C++ and Java

 

Mac OSX - Although not super-sure on this one, C++, Swift and Java are pretty common as far as I know. OSX dev isn't my forte'

 

You can use ANY fairly popular language (even something like Lua) on Linux just as easily as something like Python. Java is actually a pretty bad choice if someone wants to write for Linux. While it's fine for GUI apps (even though it uses the open-source Java, which is probably not performing as well), lots of things on Linux are done in CLI, where Java is pretty sloppy. Also, open-source is a huge part of Linux, so interpreted languages are preferred because of that.

 

As for OSX, I don't think C++ plays a large role there, more like Objective-C and Swift, but I'm no OSX expert. Also, Apple uses Ruby a lot and it comes preinstalled with OSX since a long time.

 

Quote

For Websites - HTML for Structure, CSS for Style, JavaScript to control client-side behavior, PHP for server-side behavior

 

DataBases - MySQL. This is handy pretty much regardless of what you're doing, whenever you need to store data between multiple instances of an app, this is how it's done

That's just cringeworthy, please don't mention webdev if you know nothing about it.

PHP is just one of many choices, and it's actually not a very good one. As for databases... just knowing SQL, (and SQL is the language, not MySQL, which is just one of its implementations...) isn't very useful, you need to incorporate it into a program or a website, so I'd hook it up to webdev.

 

Quote

If you study programming at a University (Or College), or in formal education at all, 50/50 chance the introductory programming subject will be either Java or Python. Ruby is also a fairly easy language for new-comers, as much of the focus of that language is easy, clean syntax.

Lots of places use C#, perhaps more than Python.


 

Quote

 

the answer is python

not "it doesnt matter"

 

Python is a decent choice, but not the best one out there. Also, Python programmers have quite a few issues in their later programming life.

 

Quote

you didnt even mention codecademy, one of the most popular free places to learn

Because he wanted to list good places to learn programming. Codecademy is quite bad.

Link to comment
Share on other sites

Link to post
Share on other sites

42 minutes ago, Gachr said:

 

You can use ANY fairly popular language (even something like Lua) on Linux just as easily as something like Python. Java is actually a pretty bad choice if someone wants to write for Linux. While it's fine for GUI apps (even though it uses the open-source Java, which is probably not performing as well), lots of things on Linux are done in CLI, where Java is pretty sloppy. Also, open-source is a huge part of Linux, so interpreted languages are preferred because of that.

 

I thought about writing "pretty much anything", but that seemed kind of vague. I guess that's the brilliance of Linux in the first place, so I might as well just list that instead

 

42 minutes ago, Gachr said:

 

As for OSX, I don't think C++ plays a large role there, more like Objective-C and Swift, but I'm no OSX expert. Also, Apple uses Ruby a lot and it comes preinstalled with OSX since a long time.

Admittedly I Googled that one and just looked at the top result. I've never done OSX dev, I'll swap C++ for Ruby

 

42 minutes ago, Gachr said:

 

That's just cringeworthy, please don't mention webdev if you know nothing about it.

PHP is just one of many choices, and it's actually not a very good one. As for databases... just knowing SQL, (and SQL is the language, not MySQL, which is just one of its implementations...) isn't very useful, you need to incorporate it into a program or a website, so I'd hook it up to webdev.

 

Again, early in the morning here in Aus, can't sleep so decided to do this. I know it probably needs a few touch-ups still. I'll mention SQL under web given it's pretty much essential, however I think RDBMS is probably another subject entirely in itself

 

I actually know quite a bit about web dev. I was simplifying. Yes, you could use Ruby on Rails, Django/Python, Java/JSP, Node.JS, hell, I've even seen C++ frameworks for Web. Web is probably a tricky one to mention, given that the frameworks and libraries that people use change like fashion trends, I know this given I have several friends/family who work within the industry. Hell you can do a one-page, pure-JS site if you wanted to, which looks to be gaining quite a bit of popularity right now (Write-up on Github).

 

I've seen plenty of the "PHP is the worst" threads before. That said, looking at Acunetix and W3Techs, they list PHP powering 82.2% and 69.27% of the sites surveyed. A couple of quick searches on the popular job-seeker sites here in Aus, and guess which language appears to be the most requested from back-end developers?

 

Hence, for the sake of simplicity, I opted to list PHP as the language new-commers to web dev should learn

CPU: Intel Core i7-4770k | Mobo: MSI Mpower Max | Cooling: Cryorig R1 Ultimate w/ XT140 front Fan | GPU: EVGA GTX 770 Dual SC SLI | Case: NZXT H440 | Case Fans: Phanteks PH-140SP x5 | PSU: EVGA Supernova P2 1000W | RAM: 16GB Crucial Ballistix Tactical Tracer | SSD: Kingston HyperX 3k 120GB | HDD: Seagate Barracude

Keyboard: Razer Blackwidow Ultimate 2013 | Mouse: Razer Deathadder 2013 | Headphones: Sennheiser HD438s | Mousepad: Razer Goliathus Control | Monitor 1: Benq XL2430T | Monitor 2: BenQ RL2455HM 

 

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Enderman said:

the answer is python

not "it doesnt matter"

Honestly, if programming in assembly language for a long-dead architecture floats your boat then I say "just go for it".  There are people out there who still write programs for old consoles like the Atari 2600 just for fun.  I know a guy who is writing (from scratch) the game Desert Bus for a console so obscure that I can't even remember the name of it.  I personally think he's crazy to choose doing that for fun, but he's learning new stuff from doing it.

 

If someone tells you that you can't / shouldn't start with a language that you think would be interesting then feel free to ignore them.  If it gets you learning something new then you're most certainly smarter afterwards as a result.

Link to comment
Share on other sites

Link to post
Share on other sites

1 hour ago, Railgun said:

I plan on learning C++ so that I can create programs for Windows and games in the Unreal engine. I know that languages such as Java are good for starting out, but what if I want to start out with C++ so that right away I can use what I learn instead of having to wait until I finish learning one language before moving to C++. Would that be reasonable at all?

Just start with C++ but don't set your goal onto making games or whatever from the get-go. Just do programming : learn programming principles and paradigms, learn the language syntax, learn algorithms, and solve problems. Seriously, it's very important to develop a sense for solving problems. You can come up with real-world problems, or some really trivial ones like sorting a vector, or you could use the very very wide selection of problems available online.

To name just a few sites of the kind:

  • TopCoder
  • CodeForces
  • CodeChef
  • HackerRank (got a T-Shirt from them <3)
  • Project Euler
  • Infoarena (you'll probably have to use google translate for this one)
  • CS Academy (still kinda in beta; I've met with the guys working on this site and it seems they have a nice vision and are making nice progress)

Anyway, before you do any of that you have to actually learn what programming is about, what it does and how it does it. For learning C++, I recommend :

http://www.tutorialspoint.com/cplusplus/

Oh, and use Code::Blocks. Don't bother with Visual Studio just yet. You could also use a text editor and the compiler, but each to their own.

 

For the algorithmic side of things, I recommend Introduction to Algorithms (H. Cormen). It has a lot, and I mean like 1000 pages of stuff in it. It's very comprehensive, very rigurous, but also not exactly beginner-friendly.

 

As you acquire more and more knowledge, things will just come to you by themselves.

 

Anyway, this is if you want to do programming. If you want to do coding, it's a whole lot easier.

i5 4670k @ 4.2GHz (Coolermaster Hyper 212 Evo); ASrock Z87 EXTREME4; 8GB Kingston HyperX Beast DDR3 RAM @ 2133MHz; Asus DirectCU GTX 560; Super Flower Golden King 550 Platinum PSU;1TB Seagate Barracuda;Corsair 200r case. 

Link to comment
Share on other sites

Link to post
Share on other sites

11 minutes ago, clegger said:

Honestly, if programming in assembly language for a long-dead architecture floats your boat then I say "just go for it".  There are people out there who still write programs for old consoles like the Atari 2600 just for fun.  I know a guy who is writing (from scratch) the game Desert Bus for a console so obscure that I can't even remember the name of it.  I personally think he's crazy to choose doing that for fun, but he's learning new stuff from doing it.

 

If someone tells you that you can't / shouldn't start with a language that you think would be interesting then feel free to ignore them.  If it gets you learning something new then you're most certainly smarter afterwards as a result.

oh yeah and that guy totally started coding in assembly right?

lol nope

and learning to code by starting with assembly is going to be extremely difficult and you cant even use half that knowledge for other languages

NEW PC build: Blank Heaven   minimalist white and black PC     Old S340 build log "White Heaven"        The "LIGHTCANON" flashlight build log        Project AntiRoll (prototype)        Custom speaker project

Spoiler

Ryzen 3950X | AMD Vega Frontier Edition | ASUS X570 Pro WS | Corsair Vengeance LPX 64GB | NZXT H500 | Seasonic Prime Fanless TX-700 | Custom loop | Coolermaster SK630 White | Logitech MX Master 2S | Samsung 980 Pro 1TB + 970 Pro 512GB | Samsung 58" 4k TV | Scarlett 2i4 | 2x AT2020

 

Link to comment
Share on other sites

Link to post
Share on other sites

i only know css and swift

too lazy to learn anything else :P

Link to comment
Share on other sites

Link to post
Share on other sites

No mention of OOP? I am disappointed.

Comb it with a brick

Link to comment
Share on other sites

Link to post
Share on other sites

46 minutes ago, Enderman said:

oh yeah and that guy totally started coding in assembly right?

lol nope

You underestimate just how old this guy really is.  In truth I think he started with basic, but my point still stands.

 

Quote

and learning to code by starting with assembly is going to be extremely difficult and you cant even use half that knowledge for other languages

To play devil's advocate I'd argue that there are some things that better taught with different languages, even assembly.  Do you learn about memory allocation and the stack and the heap from higher-level languages (Java, C#, etc)?  Not really.  But you are still able to write bad code in spite of the mechanisms in place in those languages to "protect you from having to understand things at that level".

 

I'm not saying "you have to learn assembly first".  There are merits in all languages.  You will learn something useful from any one you choose.  If you think it will be interesting to you then ignore the naysayers.

 

Here's where the opinionated version of me comes in; when you feel comfortable with one language then force yourself to try something drastically different to keep learning.

Link to comment
Share on other sites

Link to post
Share on other sites

I feel like you should mention Scratch as a resource for people new to coding. Although you won't learn anything like proper syntax, it is very helpful to get the general idea of how things work. You can also remix with Scratch so you can go in and edit someone else's functioning code and be able to see what changes with how their program works.

Link to comment
Share on other sites

Link to post
Share on other sites

Why everyone forgets about javascript and node.js? :( 

Link to comment
Share on other sites

Link to post
Share on other sites

Because of left-pad. Finally people noticed that Node.js is broken by design.

 

New developers should start with two languages instead of just one. I'd recommend Lisp and C++ or Perl - Lisp because of its great REPL (you can "try and fail" endlessly until it works as intended), C++ and/or Perl because of the portability of the concepts behind them: Learn one of those and you can easily add more languages to your knowledge. This is quite harder with "unique" languages like Python.

Write in C.

Link to comment
Share on other sites

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×