Jump to content



Photo

What should be the first programming language someone learns?


  • This topic is locked This topic is locked
7 replies to this topic

#1 +riahc3

riahc3

    Neowin's most indecisive member

  • Tech Issues Solved: 11
  • Joined: 09-April 03
  • Location: Spain
  • OS: Windows 7
  • Phone: HTC Desire Z

Posted 17 January 2014 - 18:27

Hello,

Since a nonrelated topic has gone completely offtopic, Ill start a thread about that offtopic topic :p

That was a mouthful.

So anyways, what should be the first programming language someone learns?

I want to post some quick definitions:

A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that control the behavior of a machine and/or to express algorithms

Examples: C++, Java, C#...

A (document) markup language is a modern system for annotating a document in a way that is syntactically distinguishable from the text. The idea and terminology evolved from the "marking up" of paper manuscripts, i.e., the revision instructions by editors, traditionally written with a blue pencil on authors' manuscripts. In digital media this "blue pencil instruction text" was replaced by tags, that is, instructions are expressed directly by tags or "instruction text encapsulated by tags".

Examples: HTML, XML...

A scripting language or script language is a programming language that supports scripts, programs written for a special run-time environment that can interpret (rather than compile) and automate the execution of tasks which could alternatively be executed one-by-one by a human operator.

Examples: Javascript, Python....

I refer ONLY to strict programming languages. You can state as a second alternative (or a web alternatvie) a scripting language :)

And since sadly some of us think that pseudocode is some stupid thing they taught you in school like:

ask user for name
wait for user to input name
print the name for user

and has nothing to do with the pseudocode that is done in reality and in a proper working enviorment with real scalable projects:

Pseudocode is an informal high-level description of the operating principle of a computer program or other algorithm.
It uses the structural conventions of a programming language, but is intended for human reading rather than machine reading. Pseudocode typically omits details that are not essential for human understanding of the algorithm, such as variable declarations, system-specific code and some subroutines. The programming language is augmented with natural language description details, where convenient, or with compact mathematical notation. The purpose of using pseudocode is that it is easier for people to understand than conventional programming language code, and that it is an efficient and environment-independent description of the key principles of an algorithm. It is commonly used in textbooks and scientific publications that are documenting various algorithms, and also in planning of computer program development, for sketching out the structure of the program before the actual coding takes place.
No standard for pseudocode syntax exists, as a program in pseudocode is not an executable program. Pseudocode resembles, but should not be confused with skeleton programs, including dummy code, which can be compiled without errors. Flowcharts and Unified Modeling Language (UML) charts can be thought of as a graphical alternative to pseudocode, but are more spacious on paper.




#2 Lord Method Man

Lord Method Man

    Banned

  • Tech Issues Solved: 1
  • Joined: 18-September 12

Posted 17 January 2014 - 18:30

Start with native code like C/C++ and once you learn the fundamentals of programming move on to managed stuff like C# or Java.

 

Its a similar philosophy to learning how to drive first using a manual transmission before using an automatic.



#3 OP +riahc3

riahc3

    Neowin's most indecisive member

  • Tech Issues Solved: 11
  • Joined: 09-April 03
  • Location: Spain
  • OS: Windows 7
  • Phone: HTC Desire Z

Posted 17 January 2014 - 18:33

Hello,

Its a similar philosophy to learning how to drive first using a manual transmission before using an automatic.

Worst example ever.

But thats for another thread: http://www.neowin.ne...c-transmission/ ;)

#4 +Phouchg

Phouchg

    Resident Misanthrope

  • Tech Issues Solved: 9
  • Joined: 28-March 11
  • Location: Neowin Detainment Camp

Posted 17 January 2014 - 19:27

Start with any assembly or at least C, so you understand how computers do stuff (in addition to taking Electrical Engineering 101: diodes and other funny quite-but-not-exactly unlike plastic little doohickeys). If that doesn't crush your spirit into fine dust and weed you out of the overpopulated aitee speshulist market in favor to, say, Law School, proceed to invent fabulous stuff using your perfected skills of actually having a clue. Then try to maintain that level without inadvertently contributing to Linux kernel, growing too much beard, reading Dilbert and concluding that IV coffee injection might actually be a good idea.

Uh, sorry, once I had started, the momentum carried me...

#5 firey

firey

    F͎̗͉͎͈͑͡ȉ͎̣̐́ṙ͖̺͕͙̓̌è̤̞͉̟̲͇̍̍̾̓ͥͅy͓̍̎̌̏̒

  • Tech Issues Solved: 6
  • Joined: 30-October 05
  • Location: Alberta, Canada
  • OS: Windows 7
  • Phone: Android (4.4.2)

Posted 17 January 2014 - 19:29

Assembly!



#6 Max Norris

Max Norris

    Neowinian Senior

  • Tech Issues Solved: 17
  • Joined: 20-February 11
  • OS: Windows 8.1, BSD Unix
  • Phone: HTC One (Home) Lumia 1020 (Work)

Posted 17 January 2014 - 19:39

Personally it depends on their goals.  If they're planning on going professional (IE skills you can easily "sell" elsewhere) versus learning it as a hobby (picking something niche wouldn't matter much, Pascal for example) would make a huge difference in choices

 

Just an opinion, arbitrarily excluding Python isn't exactly fair, not only can it do quite a lot but it can also be compiled in advance into bytecode or use JIT, similar to what other languages do.  Not saying it's the best option for every situation (no language is), but it's not just a scripting language either.



#7 OP +riahc3

riahc3

    Neowin's most indecisive member

  • Tech Issues Solved: 11
  • Joined: 09-April 03
  • Location: Spain
  • OS: Windows 7
  • Phone: HTC Desire Z

Posted 17 January 2014 - 19:47

Hello,

Just an opinion, arbitrarily excluding Python isn't exactly fair, not only can it do quite a lot but it can also be compiled in advance into bytecode or use JIT, similar to what other languages do.  Not saying it's the best option for every situation (no language is), but it's not just a scripting language either.

Well, it was originally designed as a scripting language. Thats why I excluded it :)

#8 Eric

Eric

    Neowinian Senior

  • Tech Issues Solved: 12
  • Joined: 02-August 06
  • Location: Greenville, SC

Posted 17 January 2014 - 19:48

[Thread closed]

Please do not start new threads on an existing topic.