Author Topic: Please advice correct programming language learning order.  (Read 2014 times)

0 Members and 2 Guests are viewing this topic.

Offline uroboros

  • /dev/null
  • *
  • Posts: 8
  • Cookies: 0
    • View Profile
Please advice correct programming language learning order.
« on: March 26, 2013, 01:56:41 am »
Hi,

I think that the correct order would be:  ASM -> C -> C++ and from that on some platform or domain specific language. Any comments would be accepted, constructive one  ;)

Offline techb

  • Soy Sauce Feeler
  • Global Moderator
  • King
  • *
  • Posts: 2350
  • Cookies: 345
  • Aliens do in fact wear hats.
    • View Profile
    • github
Re: Please advice correct programming language learning order.
« Reply #1 on: March 26, 2013, 02:30:41 am »
There is no order. If you want to learn since the beginning of computing then you flow kinda works. But in your flow, you need to be am uber nerd and also ASM instruction set is CPU specific making it bad for beginners. However C might be a good starting point since it is universal.

My flow is:
Python (well, anything scripted, loose datatyping)->Java->C++->C->ASM->logic gates

Reasons being as follows:
Scripted languages are really easy to pick up. A few lines and you have instant gratification.
The teach you basics such as looping, control flow, functions, OOP and classes with scope.

Java because it introduces more strict datatyping, forces OOP, syntax looks more like lower level, etc..
I think Java, even C# could be a gateway language, a better curve if you will. Plus with the scripted language understood, you will pick up better on what something like Java needs.

C++ because it us closer to the metal. This is one of the most used. Also it is compiled. It will teach better on datatypes, debugging, inner workings on programming and compiling, etc... If you code and concider yourself a programmer and want to be well rounded, you have to know C++.

C because of the reasons listed above except for the OOP stuff. C is much closer to the metal. You can go from 8bit microcontrollers is 64bit modernday computers. It is fast, and teaches a lot. Memory managment, heavier use of pointers and actual RAM locations and allocation, forced error checking, etc.. Did I mention no classes? All functions.

ASM because the most bare metal you can get before stepping into EE. All the reasons stated above with C, but with raw stack usage. With assembly you need to know how and why a computer actually works.

Logic gates are not needed for a software person. But will teach you exactly how a CPU is built and how memory works with it. Not to mention how everything else fits into play, from the northbridge buss, to the keyboard. This steps on the electron level and if you wanna be the one true master you need to at least be familiar. NANDtoTetris will teach you.
>>>import this
-----------------------------

Offline Super_mario666

  • Knight
  • **
  • Posts: 160
  • Cookies: 7
  • Professional Badass
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #2 on: March 26, 2013, 02:39:55 am »
Hi,

I think that the correct order would be:  ASM -> C -> C++ and from that on some platform or domain specific language. Any comments would be accepted, constructive one  ;)


i'd try the reverse if i were you. unless you have intimate knowledge of the inner workings of hardware, learning ASM as a first language would be a terrible idea. my first language was C++, and i suggest you do that  because it provides a strong base of skills that make transferring to other languages much easier. C maybe ok to learn also, but you'll eventually have to learn the principles of OOP when going into language that a purely OOP.
The Bigger they are...The more likely you'll get your ass kicked

Offline WirelessDesert

  • Knight
  • **
  • Posts: 356
  • Cookies: 10
  • I think...
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #3 on: March 26, 2013, 10:59:43 am »
I started like this.
logic gates->lua->C++->ASM->C->Python.
Check out my arduino project: Moving car - School project!
"I'm like current, I always take the easiest route."

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #4 on: March 26, 2013, 11:28:51 am »
Hi,

I think that the correct order would be:  ASM -> C -> C++ and from that on some platform or domain specific language. Any comments would be accepted, constructive one  ;)

What is your goal? Why do you want to learn these languages? What do you want to do when you are able to use them?

Offline uroboros

  • /dev/null
  • *
  • Posts: 8
  • Cookies: 0
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #5 on: March 26, 2013, 04:20:32 pm »
Thx for all replies. My goal is able to see whole picture of as many systems and their interconnection as I can. I want to fully understand what happens when I press the button. I know that this is maybe to brave goal, but until there a passion in my brain and vines I will go on in this road. Is be a Hacker, it's not all this about? I only need some advice or road sign or guru to direct me. Maybe it worth separate topic =)

Offline rasenove

  • Baron
  • ****
  • Posts: 950
  • Cookies: 53
  • ಠ_ಠ
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #6 on: March 26, 2013, 04:52:13 pm »
From what im understanding is, you went through some kinde of "how to become a hacker" article and learned that you need to  learn multiple programming languages to become a hacker. And you heard from some random place that you should learn those languages and then came here to ask in which order you should learn them. Am i right?

Now from those things you said there that you want to understand how programs work, well, you can understand how programs work by learning any language. But you need to fix your goal befor learning a programming language,

what do you want to do it the future? Develope softwairs? Develope games? Develope networking ? Make Small programs for your own needs?
My secrets have secrets...

Offline Kulverstukas

  • Administrator
  • Zeus
  • *
  • Posts: 6627
  • Cookies: 542
  • Fascist dictator
    • View Profile
    • My blog

Offline uroboros

  • /dev/null
  • *
  • Posts: 8
  • Cookies: 0
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #8 on: March 26, 2013, 07:16:15 pm »
From what im understanding is, you went through some kinde of "how to become a hacker" article and learned that you need to  learn multiple programming languages to become a hacker. And you heard from some random place that you should learn those languages and then came here to ask in which order you should learn them. Am i right?

Now from those things you said there that you want to understand how programs work, well, you can understand how programs work by learning any language. But you need to fix your goal befor learning a programming language,

what do you want to do it the future? Develope softwairs? Develope games? Develope networking ? Make Small programs for your own needs?
 

Oh, shit. I ready for this kind of bst replies :) Who have a brain and able to hear those will understand where I am trying to go. Again thx for suggestions.

Offline rasenove

  • Baron
  • ****
  • Posts: 950
  • Cookies: 53
  • ಠ_ಠ
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #9 on: March 26, 2013, 07:55:31 pm »
I dont understand you, go learn some proper english befor learning any programming language. You might mis understand facts in programming tutorials.
My secrets have secrets...

Offline uroboros

  • /dev/null
  • *
  • Posts: 8
  • Cookies: 0
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #10 on: March 26, 2013, 08:17:08 pm »
FYAE bro

Offline Deque

  • P.I.N.N.
  • Global Moderator
  • Overlord
  • *
  • Posts: 1203
  • Cookies: 518
  • Programmer, Malware Analyst
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #11 on: March 29, 2013, 10:24:38 am »
Thx for all replies. My goal is able to see whole picture of as many systems and their interconnection as I can. I want to fully understand what happens when I press the button. I know that this is maybe to brave goal, but until there a passion in my brain and vines I will go on in this road. Is be a Hacker, it's not all this about? I only need some advice or road sign or guru to direct me. Maybe it worth separate topic =)

Sorry for my late reply, I have been busy.
You want to fully understand everything from the ground up?
Does that include the electronics part? There are books about building your own little computer (with electronic parts). I have to look for them though, but building your own computer would give you really insight about the things that happen in your machine.

You should definitely learn about binaries, logic gates and how to build your own circuits.
Assembly was the first way to have an abstraction from binaries. So that would come right after, if you want to go from the ground (the least abstraction) up to higher levels.
There is a good book that also covers the binaries and inner workings of a PC before jumping into assembly: https://savannah.nongnu.org/projects/pgubook/

That will take a lot of time already, so if you made it that far, C would be a logic continuation to the next abstraction layer. But do these first steps (binary, logic gates, assembly) and see how your interests evolved by then. Maybe you want something completely different then.

Offline uroboros

  • /dev/null
  • *
  • Posts: 8
  • Cookies: 0
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #12 on: April 06, 2013, 03:01:43 am »
Sorry for my late reply, I have been busy.
You want to fully understand everything from the ground up?
Does that include the electronics part? There are books about building your own little computer (with electronic parts). I have to look for them though, but building your own computer would give you really insight about the things that happen in your machine.

You should definitely learn about binaries, logic gates and how to build your own circuits.
Assembly was the first way to have an abstraction from binaries. So that would come right after, if you want to go from the ground (the least abstraction) up to higher levels.
There is a good book that also covers the binaries and inner workings of a PC before jumping into assembly: https://savannah.nongnu.org/projects/pgubook/

That will take a lot of time already, so if you made it that far, C would be a logic continuation to the next abstraction layer. But do these first steps (binary, logic gates, assembly) and see how your interests evolved by then. Maybe you want something completely different then.

Yes, my friend! It exactly what I want :) binary, logic gates, assembly in this order. Thx, for book advice. it would be nice if you could advice some good and fresh books in binary, logic gates and assembly. As you can understand I am trying find most valuable information on the topics, because I don't want to spend lot of time on f// shit from stupid of what so ever sources. So... I am waiting for you response =) Thx, again.     

Offline techb

  • Soy Sauce Feeler
  • Global Moderator
  • King
  • *
  • Posts: 2350
  • Cookies: 345
  • Aliens do in fact wear hats.
    • View Profile
    • github
Re: Please advice correct programming language learning order.
« Reply #13 on: April 06, 2013, 03:12:26 am »
Again, NAND2TETRIS... For the record NAND2TETRIS.
>>>import this
-----------------------------

Offline WirelessDesert

  • Knight
  • **
  • Posts: 356
  • Cookies: 10
  • I think...
    • View Profile
Re: Please advice correct programming language learning order.
« Reply #14 on: April 06, 2013, 03:11:06 pm »
Again, NAND2TETRIS... For the record NAND2TETRIS.
Ha, I learnt logic gates on minecraft.
Iplayed with people that made computers in mc, dubble dabbles, etc.
« Last Edit: April 06, 2013, 03:12:02 pm by WirelessDesert »
Check out my arduino project: Moving car - School project!
"I'm like current, I always take the easiest route."