What was your language progression?

Page 2 - Seeking answers? Join the AnandTech community: where nearly half-a-million members share solutions and discuss the latest tech.

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,604
4,521
75
Note: These are the times when I really mastered a language, not the times I dipped my toe in the water and then promptly forgot everything I learned. Which is not to say everything stuck, but at the time I knew each of these fairly well.

  1. Commodore BASIC
  2. lda "A little 6502 assembly"
  3. QBasic
    HighSchool {
  4. == C
  5. Visual Basic
  6. := Pascal
  7. =~ /Perl/
  8. "HP48" "RPL" +
    }
    College {
  9. << C++
  10. movd "x86 Assembly", rax
  11. <?PHP ?> <!-- Also HTML, SQL, but neither is really a language -->
  12. public class JavaClass { public static void main(String[] argv) { System.out.println("Java"); } }
  13. Matlab
    }
  14. VBScript ; For QuickTest Pro.
  15. XSLT
  16. from .NET import Python # IronPython, that is.
  17. document.writeln('JavaScript'); // And CSS, but not a programming language. I may have re-learned JavaScript several times.
  18. <<<"CUDA">>>
  19. OpenCL
  20. "Ruby".print

If you could, how would you guys reorder these progressions, how valuable do you think the reordering would be, and why?
Doesn't have to be paragraphs, just basic reasons.
A lot of languages I'd like to have known earlier, but they weren't available earlier. CSS is a good example. And there's plenty of stuff I tried earlier but just wasn't able to get "into" at the time.
 

LevelSea

Senior member
Jan 29, 2013
942
53
91
You will find that ADA is nice because you have a very difficult time shooting yourself in the foot.

Plus the sub array features.

But type casting on the fly like in the C/C++/C#/Java languages will not fly.

I sit next to someone who's been doing some ADA for a project, and I've heard the complaints. They're using some obscure compiler which has been causing them problems as well, not to mention there's no debugger for the system.
 

Chaotic42

Lifer
Jun 15, 2001
34,508
1,677
126
C64 BASIC-> GWBASIC -> QBASIC -> C -> VBA -> VB6 -> C#/C++

I've messed around with a lot of languages, but never done much with any of them. I guess I'm the most versed in C++ of the above, but I'm still learning. I've written a lot of code which has gone into production, but they're all small programs where performance is really not that important. I started learning C++ on the job and then started taking classes.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
I sit next to someone who's been doing some ADA for a project, and I've heard the complaints. They're using some obscure compiler which has been causing them problems as well, not to mention there's no debugger for the system.

I have used ADA compilers for VxWorks (GreenHills), Windows and Sun Unix;
All have decent debuggers.

I suspect that someone tried to cut corners on quality tools and the project is now paying the penalty for doing so.
 

Obsoleet

Platinum Member
Oct 2, 2007
2,181
1
0
If I could start all over again, and had teaching available, I'd start with Racket, Scala, or possibly Haskell. If I was learning on my own, then I'd consider Python as an alternative. Whatever that first language was, I'd write a serious amount of non-trivial programs with it before looking elsewhere.

I would eventually pick up a low-level language. The minimal choice for learning purposes would be C. For actual work C++ would be better. I'd also seriously consider D despite it being rare because it's that much better of a language.

If my first pick was Python instead of a real functional language, I'd visit one later.

Those would cover learning to program. Then it's just a question of what you want to work on, what kind of apps, which platforms etc. So then languages like C#, Javascript etc. might enter the fray.

Note that this is a progression that aims high; someone who is concerned with building XYZ software and not necessarily becoming a master programmer could reasonably go with progressions like "just Scala" or "just Python" or "Python then C#".

This post ^

I'm in the 'just Python' camp. Well, Python then Javascript (web). Because while in 1985 a 'real programmer' knew C, in 2013 a real programmer knows the webstack. It's as important today as C was then. It's also a painful reality that many 'backend' programmers are still trying to stave off in their minds.

I would like to add C and Erlang to my list, because I find both fascinating, but would be more for academic purposes rather than something I'll ever realistically put to use. I've also found learning all the nitty gritty details of a given community's ways takes longer than I thought, once I leave 'useful' (which for me ==fun), and move to 'academic', I'm not sure I'll have the passion to learn that 3rd or 4th programming language that I don't have a use for (unless it's to replace something else I used to use).

Also, while there are from what I can tell, some very experienced programmers in this thread, remember that as long as you enjoy programming, it doesn't matter if you're mediocre.
https://www.youtube.com/watch?v=4Pn-f6Z-qj0
 

DrPizza

Administrator Elite Member Goat Whisperer
Mar 5, 2001
49,601
167
111
www.slatebrookfarm.com
BASIC on Apples in high school (early 80's), then friends and I got some books on Assembly & started playing around with that - allowed a lot more things that we couldn't do in BASIC. Then BASIC on the TRS-80 (Radio Shack) & Commodore 64. College (minor in computer science/computer programming) = 2 semesters of Pascal. After that, a course on programming languages: Ada, C or C+ (I don't remember which), I think we briefly covered Modula-2, and Perl which was pretty new on the scene. And, x-lisp. God I hated x-lisp. Just a couple of weeks on each language, looking at syntax, differences (capabilities), etc. Later, I played with java and html on my own. And, just a couple years ago, I asked here what would be a good 1st language for high school students. At the time, Python won. So, I learned enough of Python that I could at least give students a 2 or 3 week introduction to Python.
 
Last edited:

LevelSea

Senior member
Jan 29, 2013
942
53
91
I have used ADA compilers for VxWorks (GreenHills), Windows and Sun Unix;
All have decent debuggers.

I suspect that someone tried to cut corners on quality tools and the project is now paying the penalty for doing so.

It's an embedded system (compiler was ~$50k). As far as I know, there are no quality tools as it's a low-quantity, decades old system.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
BASIC on Apples in high school (early 80's), then friends and I got some books on Assembly & started playing around with that - allowed a lot more things that we couldn't do in BASIC. Then BASIC on the TRS-80 (Radio Shack) & Commodore 64. College (minor in computer science/computer programming) = 2 semesters of Pascal. After that, a course on programming languages: Ada, C or C+ (I don't remember which), I think we briefly covered Modula-2, and Perl which was pretty new on the scene. And, x-lisp. God I hated x-lisp. Just a couple of weeks on each language, looking at syntax, differences (capabilities), etc. Later, I played with java and html on my own. And, just a couple years ago, I asked here what would be a good 1st language for high school students. At the time, Python won. So, I learned enough of Python that I could at least give students a 2 or 3 week introduction to Python.

Had a pair of grad class like that. Every month new "obscure" language.
 

ruhtraeel

Senior member
Jul 16, 2013
228
1
0
If you could, how would you guys reorder these progressions, how valuable do you think the reordering would be, and why?
Doesn't have to be paragraphs, just basic reasons.

If I could reorder the progression in which I learned these languages, it would probably look something like

1. Python (Easy to get a grasp around for basic logic)
2. C# (Practical use, easy to learn OO programming with)
3. SQL (Super easy and useful, and at around this time you have already been introduced to set theory in discrete math)
4. Java (A bit more cumbersome than C#, or maybe that's just Visual Studio being super awesome to use)
5. SPARC (Easy to grasp as an introduction to assembly)
6/7. Intel x86 (Learning about memory management)
6/7. C (Amazing language to understand operating systems with, and how a higher level language is interpreted by a machine)
8. C++ (Makes you a better programmer)
9. Haskell/Prolog/etc. (Really niche languages that serve very specific purposes. These languages are really where you branch off into different problem-solving scenarios)
10. Whatever the heck you want (PERL, Ruby, HTML, VB, etc)


This is an incredibly bias order though. This list is made from a Computer Science POV, where the primary objective is problem-solving (algorithm work and such). If it is Software Engineering (learning to become a flawless programmer vs. learning to become a thinker), the order would be pretty different I think, and some stuff would be more important (PERL, Javascript, HTML), while others wouldn't be as necessary (Haskell/Prolog).
 
Last edited:

ruhtraeel

Senior member
Jul 16, 2013
228
1
0
why C++ makes better programmer?


I believe he means at systems programming.

Mainly an extension of this. While C is nice in the sense that you can see how regular looking code can be interpreted by the computer (in assembly and stuff), C++ sort of has the best of both worlds; it has the capabilities of looking at lower-level components such as memory allocation, while still having the advantages of a higher-level language such as being Object Oriented.

These two things combined, given that you have some background in both areas already, lets you truly understand what you are making instead of just relying on basic logic (this should work but it makes my computer slow!) or ugly/functionally lacking code (this runs really well but it's a million lines long and spaghetti-like...).


Take my opinion with a grain of salt, however; C++ is one of the languages that I was never officially taught in a course (which is funny, because the intro to CPSC course was originally taught in C++, but it later got switched to Python; however, all the 3rd/4th year courses still automatically assume that you know C++ for some reason, so it turns into a lot of self-teaching).
 
Last edited:

dbsseven

Junior Member
Jan 17, 2013
4
0
61
HTML/Javascript (HS self taught)
C++ (HS, rusty now)
Matlab (undergrad)
Perl (grad school)
Python (after grad school)

up next: C, then maybe openCL for fun
 

Pia

Golden Member
Feb 28, 2008
1,563
0
0
This post ^

I'm in the 'just Python' camp. Well, Python then Javascript (web). Because while in 1985 a 'real programmer' knew C, in 2013 a real programmer knows the webstack. It's as important today as C was then. It's also a painful reality that many 'backend' programmers are still trying to stave off in their minds.
I don't really understand in what sense C circa 1985 and webstack circa 2013 are equivalent. I don't work on web apps, so why would I need to know that tech?
 

slpaulson

Diamond Member
Jun 5, 2000
4,414
14
81
I probably have the order somewhat mixed up from college, but here it goes.

Middle School
HTML - Messing around on my own

High School
BASIC - What passed as a programming class

College
Java - Into to programming and a data structures class
MIPS Assembly - Embedded software
C - Operating Systems
SPICE - Circuit class
x86 Assembly - Embedded systems lab
Verilog - Hardware design lab
Matlab - DSP classes
C++ - One credit C++ class

Career work
Embedded C
8051 Assembly
Objective C
Random bits of JavaScript, LabView, and ActionScript.
 

irishScott

Lifer
Oct 10, 2006
21,562
3
0
I don't really understand in what sense C circa 1985 and webstack circa 2013 are equivalent. I don't work on web apps, so why would I need to know that tech?

This was my thought as well. I'd also like to point out that the recent mars rovers are programmed in C, but apparently those guys at NASA aren't "real" programmers in 2013.

Web programming is the new, hot kid on the block and is currently exploding relative to other areas, but the back-end and embedded programming have hardly gone away; nor do they show any sign of shrinking.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
This was my thought as well. I'd also like to point out that the recent mars rovers are programmed in C, but apparently those guys at NASA aren't "real" programmers in 2013.

Web programming is the new, hot kid on the block and is currently exploding relative to other areas, but the back-end and embedded programming have hardly gone away; nor do they show any sign of shrinking.

Web programming is the new UI wiz kid.

However, you have to have the middleware to get the information into the system (ASP & equiv).

Once the data is into the system; what is to be done with it. Analyzed, routed; processed, stored, distributed, etc.

None of the above is Web stuff.
 

KIAman

Diamond Member
Mar 7, 2001
3,342
23
81
GW-BASIC
PASCAL
C
C++
VB
SQL
JAVA
HTML/JavaScript/Css
C#
Delphi (object pascal)
Objective-C

I won't even list the languages I learned from classes, imo those don't even count. These are the languages I've used to actually build something significant or for money.
 

theknight571

Platinum Member
Mar 23, 2001
2,896
2
81
SBasic on a CP/M Computer
Basic on an Apple II (HS)
Turbo Pascal on IBM (HS)
Pascal on MacIntosh (HS)

In college... these might be a little out of order but we learned these:
Assembly
ADA
COBOL
FORTRAN
Prolog
Pascal (on a Mainframe)
C
C++
SQL
Some language used for programming robotic arms... I forget the name.

Since College: (Note.. I've used these, I can't say I've learned all of them. lol)
VB
VBA
VC
HTML
VC#
VF#
JavaScript (does that count?)
PHP
Python
 

ruhtraeel

Senior member
Jul 16, 2013
228
1
0
SBasic on a CP/M Computer
Basic on an Apple II (HS)
Turbo Pascal on IBM (HS)
Pascal on MacIntosh (HS)

In college... these might be a little out of order but we learned these:
Assembly
ADA
COBOL
FORTRAN
Prolog
Pascal (on a Mainframe)
C
C++
SQL
Some language used for programming robotic arms... I forget the name.

Since College: (Note.. I've used these, I can't say I've learned all of them. lol)
VB
VBA
VC
HTML
VC#
VF#
JavaScript (does that count?)
PHP
Python

Anyone who has FORTRAN or especially COBOL I instantly label as old
My dad learned COBOL and FORTRAN in university and he's 60 lol
 

nickf77

Junior Member
Jul 28, 2013
16
0
0
Before high school (self-taught)
CSS/HTML
VB.NET/ASP.NET
TI-86 calculator language :thumbsup:

In high school (both classes and self-taught free time)
BASIC
Java
Alice (does this even count?...)
ActionScript (not a fan)
Javascript
PHP
SQL/MySQL

Post high school & college
C#
Assembly
Objective C (working on it)


In general, I wish I would've started with the lower-level languages and worked my way up to higher level ones that hide the nitty-gritty like VB.NET. Starting with high level languages got me into some bad habits and sloppy and inefficient code. I built my house and THEN built the foundation...
 

owensdj

Golden Member
Jul 14, 2000
1,711
6
81
BASIC on my own as a teen
Pascal in High School Computer Science
Modula 2 in freshman Computer Science class
SQL
C
C++

I also saw some COBOL, Fortran, LISP, and x86 assembly in betwen Modula 2 and C++.
 

EagleKeeper

Discussion Club Moderator<br>Elite Member
Staff member
Oct 30, 2000
42,589
5
0
Anyone who has FORTRAN or especially COBOL I instantly label as old
My dad learned COBOL and FORTRAN in university and he's 60 lol

Old things are still useful.

The two you listed are paying the bills for many. Rates are higher than the Web,/Cloud people that are in "high demand"
 
sale-70-410-exam    | Exam-200-125-pdf    | we-sale-70-410-exam    | hot-sale-70-410-exam    | Latest-exam-700-603-Dumps    | Dumps-98-363-exams-date    | Certs-200-125-date    | Dumps-300-075-exams-date    | hot-sale-book-C8010-726-book    | Hot-Sale-200-310-Exam    | Exam-Description-200-310-dumps?    | hot-sale-book-200-125-book    | Latest-Updated-300-209-Exam    | Dumps-210-260-exams-date    | Download-200-125-Exam-PDF    | Exam-Description-300-101-dumps    | Certs-300-101-date    | Hot-Sale-300-075-Exam    | Latest-exam-200-125-Dumps    | Exam-Description-200-125-dumps    | Latest-Updated-300-075-Exam    | hot-sale-book-210-260-book    | Dumps-200-901-exams-date    | Certs-200-901-date    | Latest-exam-1Z0-062-Dumps    | Hot-Sale-1Z0-062-Exam    | Certs-CSSLP-date    | 100%-Pass-70-383-Exams    | Latest-JN0-360-real-exam-questions    | 100%-Pass-4A0-100-Real-Exam-Questions    | Dumps-300-135-exams-date    | Passed-200-105-Tech-Exams    | Latest-Updated-200-310-Exam    | Download-300-070-Exam-PDF    | Hot-Sale-JN0-360-Exam    | 100%-Pass-JN0-360-Exams    | 100%-Pass-JN0-360-Real-Exam-Questions    | Dumps-JN0-360-exams-date    | Exam-Description-1Z0-876-dumps    | Latest-exam-1Z0-876-Dumps    | Dumps-HPE0-Y53-exams-date    | 2017-Latest-HPE0-Y53-Exam    | 100%-Pass-HPE0-Y53-Real-Exam-Questions    | Pass-4A0-100-Exam    | Latest-4A0-100-Questions    | Dumps-98-365-exams-date    | 2017-Latest-98-365-Exam    | 100%-Pass-VCS-254-Exams    | 2017-Latest-VCS-273-Exam    | Dumps-200-355-exams-date    | 2017-Latest-300-320-Exam    | Pass-300-101-Exam    | 100%-Pass-300-115-Exams    |
http://www.portvapes.co.uk/    | http://www.portvapes.co.uk/    |