Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

First of all, I couldn't decide the right words for title after reading How old is "too old"? question. I still can't decide with old, middle-aged, expert or professional.

As you know, there are a lot of developers over 35-40 years old in StackExchange. They are helping to beginners and having less experience people. They are so valuable users. And mostly, their some answers are awesome becauase of good analyzing and adding their experience to answers.

When I see this kind of users, they all started programming with kind of Lisp, Pascal, Cobol or Basic type programming language. These are the first modern programming languages. And I think these people are so lucky learning programming with them first because of they are close to machine language. Maybe they learn the basics of programming better. Now it looks they are working easly with object orianted programming.

I'm graduated from computer engineering a year ago . First year, we superficial learned C programming language. Second year, there are C# and Java course. But when I try to learn this languages in colluage, I always feel like I missed something. Learning languages, structures, libraries.. if fine but teachers never teach us "How the codes working in machine?". They teach us the programming language which is popular in software market. So kind of they prepare us for companies. They think If we learn assembly or fortran, we can't easly find a job according to Java or C#. Unfortunately, at these days, this is kind of true.

Could be better learning first Assembly, Fortran, Cobol instead of Java and C#? Are we unlucky?

share|improve this question

closed as not constructive by Mark Trapp Oct 30 '11 at 1:12

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

If you really want to experience the good old days, throw away your dsl router and use a 14,400 bit/s HST modem instead. – Yannis Oct 29 '11 at 22:30
14.4? Try punched cards and a box to mail them. – World Engineer Oct 29 '11 at 22:42
When you're young you wish you were older and wiser and when you're older you wish you were younger. Enjoy your youth and work hard! – Guy Sirton Oct 29 '11 at 23:14
Dude, C is much, much closer to machine language than Lisp, Pascal, Cobol or Basic. Lisp is about as far from machine language as it's possible to be (well, except for Lisp machines, but those didn't work out so well). – Michael Borgwardt Oct 29 '11 at 23:43
I'm so jealous of young developers learning programming in school. – LarsTech Oct 30 '11 at 1:12
up vote 11 down vote accepted

Consider yourself lucky. We have an abundance of mature languages today, blazing-fast hardware is available at commodity prices, and virtually any programming environment you want, including compilers, editors, documentation, and a world-wide community to support you, are available at your fingertips, for the price of a consumer-grade internet connection.

You can have everything; make use of it instead of whining about your college teaching you the 'wrong' things.

share|improve this answer
That being said, it would be not too bad to introduce some computing models, like van Neumann, etc. to the students. – Ingo Oct 29 '11 at 22:31
"And get off my lawn." – Mahmoud Hossam Oct 29 '11 at 23:29
Many colleges are doing it wrong despite all the mature technology and knowledge available nowadays. And that is a severe problem. – back2dos Oct 29 '11 at 23:58
Well; I am aware that many colleges are teaching the wrong or insufficient things. My point is, you can and should be actively seeking out things to learn yourself - everything you need is there, for free or at commodity rates. Even the perfect college can only teach you a fraction of what it takes. – tdammers Oct 30 '11 at 6:41

Grab a copy of The Art of Computer Programming. It's a favorite collection of books to sit on the bookshelf so people can feel like they're smart. If you actually open and read them in sections, however, it's the Rabbit Hole. First off, this work was started over 40 years ago, so you'll see some old stuff that has passed in time (MIX processor language has 6-bit bytes).

Aside from that, the nature of the book is that it's comprehensive in language, math, understanding, and approach. If you want to look at things at a lower level and understand how your modern languages relate to the processor, I feel like this is one of the best ways beyond what you get out of your degree program.

Now, for the order of learning things, I think that any functional modern language is a great start (functional as in useful, so Java & OO languages are in). When you really look at data structures, learning C is the next thing I think matters. Understanding the power of simple arrays, pointers, and the stack are there. Writing assembly is something you do because you must, because you think it's fun to be MEL, or if you're doing reverse-engineering / hacking.

share|improve this answer

COBOL is a zombie lurking in backrooms of Enterprise whilst Fortran is almost a domain specific language these days anyway. Assembly is barely used outside of embedded and other performance conscious circles. Also only Fortran, C or Assembly are "metal" languages as such. COBOL, Lisp and the rest were and are high level programming languages.

It's also the law of the jungle at work. You've got really good veterans answering questions because they are good enough to have survived that long and not burn out. They may have been better educated in the sense that they had to contend with more direct problems of engineering than what shows up today but I can guarantee you that the courses being taught in my program are quite rigorous and the ones down the way at Georgia Tech are even more so in many cases. Tech for instance has you doing bit slicing in Java, teaching you the same thing you'd have learned with C or whatever. And they make you Unit Test it. Agile shows up earlier these days too. Academia is beginning to catch up the social coding methods of industry.

If there is any validity to "older is better" it would be one factor beyond experiential. It's mathematical. My CS department split from the Math department just over 10 years ago and until very recently had far more explicit math in the program. So you've got 40 year olds running around with physics and math degrees who happen to be programmers. They are problem solvers by training and nature, real engineers. I'm not knocking CS programs by any means but I'd wager the general level of training in mathematics and physics that permeated older programs rather than "pure" CS helps a lot in making "older is better". There's a certain pragmatism that shows up with engineering and science programs that doesn't show up with newer "CS" programs due to CS being a more theoretical discipline. I'm not saying it's "worse" per say just different priorities.

Lastly, why are you waiting around for teachers to teach you everything? If you do in fact love this discipline, then love. Go really learn how computers work on your own, no one is stopping you. If you want to learn Lisp or Fortran then do so. You have an internet connection. You are limited only by your motivation to be as good as you can be. I for one, plan to be as good as the veterans when I get around to that stage.

share|improve this answer
+1 Flattery will get you up votes. – Gilbert Le Blanc Nov 1 '11 at 17:02

Those other languages have been superseded for a reason. They're not better just because old people, or even good people or smart people, started with them. DMR didn't sit down and go "Gosh, you know what's a great language? Assembly. And I'm going to call on all my experience and knowledge to make that call." He used it because there was nothing else. And then it sucked so badly, he invented something else. OO exists and is the current dominant paradigm because non-OO languages suck. Take a hint from evolution.

Moreover, people don't choose their starter languages. A language isn't better just because some famous guy or some experienced guy started out with it. The overwhelming probability is that they had absolutely no choice in the matter, and even if they did, they probably wouldn't have known goto from polymorphism when starting out, making it a choice totally disconnected from their current status anyway.

And even if they did, you'd still have to ask them and get a solid justification before drawing any conclusion for yourself anyway.

As such, the fact that a language was used to start someone else is utterly irrelevant in the highest possible degree. You'd get more significant data deciding that your faeces look like a language's name, or the face of it's creator, or trying to divine meaning from the stars.

share|improve this answer
I read a stat once that showed all successful languages were written by men with facial hair. Languages that are here today gone tomorrow were written by men that shaved and were generally clean cut. Wonder what this means? Here they are: Part 1 Part 2. I think its conclusive. old people with facial hair write better languages. – Loki Astari Oct 29 '11 at 23:46
That guy has a shitty definition of "successful". LISP given as successful and FORTRAN not? Plus, I have facial hair, so either accept my superior opinion or give up your bias. – DeadMG Oct 30 '11 at 0:36
@DeadMG: Can you back that claim up with evidence? :D – back2dos Oct 30 '11 at 1:02
+1 - As offensive as DeadMG's argument may seem, there is much truth in it ... languages have evolved such that productivity (dev deadlines, ease of maintenance etc) are much improved over doing it in ASM or C. I learned the hard way 12 years ago ... I was a C dinosaur and got left in the dust by VB6 and Java. I quickly learned that to in order to earn a living, I needed to regard software as a tool to achieve business objectives, and not the other way round. – StuartLC Oct 30 '11 at 16:03

Not the answer you're looking for? Browse other questions tagged or ask your own question.