Are There Generational Differences In First Coding Languages and Learning Resources? (hackerrank.com) 168
"Under the age of 39? Odds are that most of your peers learned to code in C.
"Most Baby Boomers and Gen Xers — or, those between the ages of 40 and 74 in 2020 — learned to code in BASIC."
That's just one of the interesting conclusions from HackerRank's third annual "Developer Skills Report," which this year compiled responses from over 116,000 developers (from 162 different countries). Developed for educational use in 1964, BASIC was a popular instructional language in college classrooms. But that began to change in 1972, when Bell Labs invented C, allowing portability of the Unix operating system. Though it wasn't an instant hit, the language rose to popularity in the late 70s and early 80s alongside the growth of Unix. Today, the language is celebrated for its longevity, flexibility, and ease of use — just some of the reasons it's still popular for Gen Zers learning to code today.
Gen Z is more likely than any previous generation to utilize bootcamps. Nearly one in six say they've leveraged bootcamps to learn new skills. On the flip side, they're less likely to learn coding skills from older generations' go-tos, like books and on-the-job training. As Gen Z comes to rely more heavily on non-traditional education sources like bootcamps, they're poised to become a key talent pool.
Jaxenter also summarizes another interesting finding from the survey. "72% of hiring managers reported that bootcamp grads were equally or better equipped for their job." The I-Programmer site even noted the top reasons managers gave the surveyors for why bootcamp grads exceed:
"Most Baby Boomers and Gen Xers — or, those between the ages of 40 and 74 in 2020 — learned to code in BASIC."
That's just one of the interesting conclusions from HackerRank's third annual "Developer Skills Report," which this year compiled responses from over 116,000 developers (from 162 different countries). Developed for educational use in 1964, BASIC was a popular instructional language in college classrooms. But that began to change in 1972, when Bell Labs invented C, allowing portability of the Unix operating system. Though it wasn't an instant hit, the language rose to popularity in the late 70s and early 80s alongside the growth of Unix. Today, the language is celebrated for its longevity, flexibility, and ease of use — just some of the reasons it's still popular for Gen Zers learning to code today.
Gen Z is more likely than any previous generation to utilize bootcamps. Nearly one in six say they've leveraged bootcamps to learn new skills. On the flip side, they're less likely to learn coding skills from older generations' go-tos, like books and on-the-job training. As Gen Z comes to rely more heavily on non-traditional education sources like bootcamps, they're poised to become a key talent pool.
Jaxenter also summarizes another interesting finding from the survey. "72% of hiring managers reported that bootcamp grads were equally or better equipped for their job." The I-Programmer site even noted the top reasons managers gave the surveyors for why bootcamp grads exceed:
- Ability to learn new technologies & languages quickly (71%)
- Strong practical experience (61%)
- Eager to take on new responsibilities (52%)
And they also summarize another interesting result. "Almost a third of developers at small companies (1-49 employees) haven't obtained a Bachelor's degree -- a proportion that drops to only 9% in companies with 10,000 or more employees."
Basic, yes but (Score:5, Insightful)
Re:Basic, yes but (Score:4, Funny)
My first code was written in FORTRAN II pressed into clay tablets.
Re:Basic, yes but (Score:4, Interesting)
My first code was written in FORTRAN II pressed into clay tablets.
My first was in FORTRAN IV. After that in college, I learned and wrote in binary. NOT assembly: binary. 8 individual switches for data, 16 for address. And a STORE/STORE NEXT toggle. My roommate actually had his computer in the dorm room.
... And forget programming errors, you hoped like hell you din't mis-toggle something in. Then you hit the RUN toggle, then the STOP toggle. (I think they were the opposite ends of a 3-way toggle switch, where the middle position wasn't connected.)
.... though we had to save and load data with a cassette at blindingly fast 300 baud.) And the source code couldn't be that big, either.
You wrote your program out on a notepad in assembler, looked at the CPU cardboard sheet and complied it by hand producing octal (YETCH! HEXADEMICAL) codes, and then you toggled it in.
And THEN you entered the address where you stored the result (in binary via the address switches) and read the 8 individual LEDs on the display. (Not LED segments, LED lights -- singular.)
Later on we upgraded to like 4K of RAM and eventually a keyboard and monitor (and editor!
Re: (Score:2)
Yeah - Fortran First.
Basic 2nd - in parallel with COBOL. Was the lab assistant for the computer lab teaching Basic in Junior College - never took a class for it. This is coincident with the Altair 8080 system MS Basic coming available.
Pascal in college - never really used it. Also - IBM 360 Assembler.
FInally - took a class in C programming for my job in very early 80s - and have written many thousands of lines since.
With my current job - Perl/Tcl/Python.
Count from one (Score:2)
And no doubt you used to count from 1. Just like in school. But now you count from 0.
Of all the nasty things in C, that is the worst because it has now infected so many other things. Element 2 is the third element.
Re: (Score:2)
Ah the good old days of WatFour Fortran and punch cards.
APL (Score:2)
APL was the best calculational scratchpad until Mathcad.
Re: (Score:3)
6502 assembly rocks!
Re: (Score:2)
Commode 64 my friend. sys 64738.
Commode 64? (Score:2)
New meaning to the archaic term "core dump"?
Re: (Score:2)
So does 68k and early ARMs (ARM 1 - 3).
Re: (Score:2)
First language was an intro to Fortran IV but I never did anything with it. Good mostly for the IBM template for drawing flowcharts. Then AppleBASIC on an early Apple ][ computer, and 6502 assembler, so as to POKE assembler code into the keyboard input buffer and run it in there. Fun times.
Re: (Score:3)
I learned to program as a kid on a Sinclair ZX81 in 1981 which had a 8-bit Z80 and 1KB of RAM. I thought myself Sinclair BASIC and bought magazines that contained programs, mainly games, that I could type in. Realising that some programs were poked in from REM statements I investigated and discovered Z80 machine code. I got my mother to purchase me a brilliant book called "Programming the Z80" by Rodnay Zaks by Sybex https://en.wikipedia.org/wiki/... [wikipedia.org]. This book was very concisely written and showed exactly
Re: (Score:2)
I remember in 6th grade filling up the 2K of RAM on my Timex/Sinclair 1000, trying to write a hangman program. At which point instead of stopping me from typing more code, the machine just hung.
After that I just wrote my code on paper, and typed it in at school. Less frustration, wasted time, data loss.
Graphics were whole pages of POKE codes. I didn't even realize I was learning "machine code."
Re: (Score:2)
I went from TRS-80 Color Basic to M6809 Assembly to C.. Then to Windows in C. Then to C++ and OWL (Borland's Object Windows Language).
Next was Visual Basic, VBA In Access, SQL for SQL Server, DB2, Oracle, MySQL, then SAS, Perl, then PHP, and finally at my happiest in JavaScript and Node.js.
Of course, I commonly also work in other languages but I think those above were more core to my history. Right now, a lot of C# and PowerShell. However, my favorite by far in Node.js. I do some things in C.. haven't d
Re: (Score:2)
I belong to the second category 40-74(!), and "auto" learned the Basic language. But It quickly occurred to me that to get most of the machine, the next step had to be assembler.
likewise. i wandered into it (Commodore Pet 3032 at school in 1978), then a ZX Spectrum (original) and for a couple of decades my amusing claim to fame of software purchases was the Spectrum Basic Compiler and IDAPro: one compiler and one *de*-compiler.
even at university in 1988-1991 i picked up c through "auto" learning, because Imperial College, due to its high reputation, specifically explained to us that they were teaching us Modula-2 (the successor to Pascal) and Hope (an in-house version of Prolog) v
Re: (Score:2)
now i hear stupid kids - and i'm sorry to have to use that word but unfortunately it's appropriate - whining "oh c is just a direct translator to assembler therefore it's shit, everyone should stop writing code in c and do it in java or c# or python or Rust" and i am left there stunned, wondering how the hell they managed to get through a degree without being informed that major critical infrastructure projects like the linux kernel, apache2, samba, the python interpreter itself, the web browsers they're re
Re: (Score:2)
My nephew has computer science in school. In two years he will go to university. If he would tell me the force teach him C or C++, I would put him into a different university.
Why don't you let him make his own choices, he's not even your child. And you're not exactly a beacon of education yourself, how the fuck would you know what a good school is?
Re: (Score:2)
I studied at the best university in Germany ... obviously my bar is quite high. http://www.kit.edu/english/ind... [kit.edu]
As his father has no clue about CS, but I have, I obviously are the one to make suggestions.
Why don't you let him make his own choices, ... no idea what you got wrong, again ...
Obviously he will do his own choices
Re: (Score:2)
"oh c is just a direct translator to assembler therefore it's shit," ...
and i am left there stunned, wondering how the hell they managed to get through a degree without being informed that major critical infrastructure projects like the linux kernel, apache2, samba, the python interpreter itself, the web browsers they're reading this on and many more, they're *all written in c or c++*.
Or like, "what does a compiler do?" Hint for stupid kids: "compiling" is a very small part of it.
Re: (Score:2)
I'm 46. I FIRST programmed in BASIC. I LEARNED to code in Pascal.
Re: (Score:2)
Turbo Pascal to test a concept, then assembler to make it work in real-time. I am that old.
Re: (Score:2)
Same, ... Atztec C, quite nice environment, obviously idiotic slow on disks and the assembly it created was laughable ... but trying to compile a "16+ bit language" down to an 8bit processor is ofc. challenging.
I learned on an Apple ][ and it had a mini assembler build into its ROM.
But I switched quickly to Pascal, and C
They should have tried to simulate a kind of 16 bit processor, like SWEET 16, in the zero page and generate code for that.
I basically did assembly to put &hooks into the BASIC interprete
Re: (Score:2)
But It quickly occurred to me that to get most of the machine, the next step had to be assembler.
Exactly this. I'm in the same demographic, and BASIC was my first language, running on an HP 2000B. I quickly picked up IBM 1130 assembler language and then I truly was up and running. I never gave up on assemblers: IBM 360/370, PDP-8, 6502, Z80, 68000, PowerPC, x86/AMD64, and ARM. I also never gave up on high level languages, either: ALGOL, FORTRAN IV, COBOL (hard to admit to that one), PASCAL, C, C++, Java, plus a zoo of interpreted and scripting languages too long to list. They've all served me well on m
JavaScript I mean actionscript (Score:4, Interesting)
I learned basic first, then asm then pre standard C++ then C.
I know people now only a few years younger who learned flash (Actionscript) first. Not a bad choice by the sounds of it.
Re: JavaScript I mean actionscript (Score:4, Interesting)
As bad as Flash was for the web, it was a fantastic learning environment for newbies, due to allowing quick and rewarding results.
For those who don't know: It uses ActionScript. Which is basically JavaScript with types.
Nowadays, I'd highly recommend Godot Engine for that same purpose. Its GDScript is.basically Python, and Godot is well-designed so learning only a few concepts get you very far. And its tutorials are very good.
Re: (Score:2)
Great suggestion, the link is here, you should have included it: https://godotengine.org/ [godotengine.org]
PASCAL (Score:3)
Re: (Score:2)
Same here, although a decade later.
Commodore PC-10 here. (Score:2)
What a piece of shit. ;)
Had to learn GWBasic from a *reference manual* with zero former experience. Keeping pointers, stacks and I/O riddles to me. ;))
Re: (Score:2)
Same here, Turbo-Pascal was used in college classes.
Re: (Score:2)
I was in high school in the 70's and we didn't have computer classes.
Same here. But we had a one semester course called "computer math" in which we developed algorithms that we programmed into a big old calculator using octal codes on punch cards (had to poke the holes out with a pencil, and feed the cards in the reader one by one). It supported looping and conditional branching, so we couldn't really ask for more.
From there it was FORTRAN in college -- keypunch machines and mammoth automated card readers. It was fun to watch the cards being sucked through those thing
TURBO Pascal (Score:2)
Actually, I'm surprised that isn't listed in the options.
I would think everybody who started programming from around 1983 to 1990 would have started with Turbo Pascal and not BASIC.
You had to buy/pirate GW-BASIC if you didn't have a genuine IBM PC and Turbo Pascal was cheaper and produced faster running code.
Re: (Score:2)
Many people learned in schools ... and simple computers like Atari 800, Comodore CPC, Apple II had BASIC build in. And/or the school had UCSD Pascal fro them. Turbo Pascal is an Z80/8080 thing ... I doubt it ever existed for a 6502.
Re: (Score:2)
What happened to your karma? You pop up as level 1 in this thread with every post.
If you got troll modded please complain to the relevant email address (don't have it at hand, but I believe it is help@slashdot.org), so the violators can get punished/banned from modding and your Karma gets restored.
Re: (Score:2)
Borland programs (like Turbo Pascal) only ran under MS-DOS. Not an option for the rest of us who got started on Apples, Commodores, or Ataris. TP also had to be purchased separately while BASIC came pre-loaded with pretty much every computer you could buy in that time frame.
We kids learned on BASIC first because that's what was available. As many have pointed out, the next step
Did all four..... (Score:3)
Learning Basic (Check)
Learned C (Check)
Have a Computer Science Degree (Check)
Did BootCamps, Lynda, Udemy courses (Check)
I do find that the early 'classical training' I had in C and Computer Science helps keep me stay grounded in thinking, performance tuning, and debugging. From my view, not much has changed, we are just creating more layers of abstraction and keep moving father and father away from the hardware as we enter era of cloud computing.
HR Spew (Score:2)
Re: (Score:2)
true, bootcamp means you can pick up new languages quickly... and do what with them? Hello World and a heap of cut n paste from stackoverflow?
In my day we had managers who did that and thought they were now programmers.
Re: HR Spew (Score:2)
Re: (Score:2)
A good bootcamp is meant to teach one specific thing, for example the syntax and paradigm for a specific language. Or maybe how to use a particular API. ...
That does not make any sense.
You learn that in 20minutes by looking at the grammar of the language. Probably 5 minutes
Re: (Score:2)
Hiring manager doesn't mean HR. It means the manager who is is doing the hiring. That's the person you'll report you once you get hired. At least in the company I work at.
Re: HR Spew (Score:2)
Nah. Avoided C like the plague. (Score:2)
And C++ even more so.
After having merely toyed with Basic, and disliking it.
In favor of (Turbo)Pascal, assembly, ObjectPascal, Java and then Haskell and Python. ;)
With Lisp, Perl, Prolog, on the side, and JS/PHP as a deep dark secret.
Quite happy with my choices.
I *highly* recommend not getting stuck with C-likes. ;)
Unless you have a degree in theoretical CS, nothing will give your skills a boost like Haskell/Lisp. (Although the latter feels a bit like coding in Unlambda. Sugar-free candy.
Nah. Avoid Haskell and Lisp (Score:3)
If you want a job outside of academia and don't want to do web dev then you HAVE to know either C/C++, Java or Python. End of. Learn Haskell or Lisp if you want but don't expect to earn much of a living from it.
Re: (Score:2)
Turbo Pascal was amazing, I forgot about that. I had always hoped it would compete with 'C' but it never did and here we are today in the land of buffer overflows and pointers.
Re: (Score:2)
Why on earring did you recommend against C and C++? You by your own admission have avoided then so you clearly don't know enough about them to make the call.
I'm out in left field then, learned PL/C (Score:2)
Re: (Score:2)
I learned PL/? (can't remember C or I) in the late 80's for my CS degree, never saw it outside the classroom.
I originally learned Fortran in the early 80's for my ME degree, used it some at USGS in the 90's and ADEQ in the 00's.
The semester I took Fortran was the last one that used punch cards, it was a pain but looking back now, it was a good experience for a historical perspective.
Re: (Score:2)
I spent many years with PL/I, on IBM System/360s.
Re: (Score:2)
I'm old enough to remember helping my dad to feed the punch cards into the computer at the factory that did the payroll :)
Was taught BASICA in high school when they offered "weekend courses" in the computer lab for extra credit, self taught myself ASM, then C/C++/C#. Never really had formal training and I code for a hobby because it's fun.
Re: (Score:2)
PL/C was the first language I learned in a classroom, my first year in the CS major intro programming course. I tested out of that class in the second week (with BASIC and Data General Nova assembly language as my only previous practical experience), and got into the second semester CS course using Pascal and PDP-11 assembly. Fortran, COBOL, RPG II, 8080 (CP/M), CDC Cyber assembly (NOS), Tutor, 68K and Pascal on Mac, and eventually C, were my primary languages initially (i.e. first ten years after gradua
Assembler anyone (Score:2)
Bootcampers for technology X ... (Score:2)
... are better at technology X because they went to a bootcamp for technology X.
This insight is brought to you by CORI - Captain Obvious Research Institute.
No news here.
Point in case: Fully understanding the entire point about this bizarre thing called ReactJS requires you to think so far out of the box of traditional web development that you might as well start from square one to get up to speed. I know what I'm talking about, I'm a traditional webdev diving headlong into this React right now. For real. It
Re: (Score:2)
heh. Reminds me of a stackoverflow answer that had a really complex SQL query in a stored procedure that was quite slow. The PHP dev rewrote it in 4 client queries and it went faster.
Then everyone pointed out he'd made it worse - because if he had rewritten the stored procedure to be 4 queries, it would have gone a lot faster, and without the network IO dragging the 4 result sets back to the client to be processed.
Poor Kids (Score:5, Insightful)
My parents signed me up for a programming class in 4th grade with the Rec. Department. The guy running it had a VIC-20 and the 32K memory expansion never shipped for BASIC. So we learned on 6502 assembler loaded off a tape at the beginning of class and were encouraged to get a C=64 for home after the class to learn BASIC.
It wasn't until I took Pascal in high school that I found out that assembly was an advanced topic I'd get in college. Somehow it didn't seem so mysterious. I actually took a summer course in high school at a technical college in Mass. and the other kids in EE were happy for me to program the 8080 while they did resistors and stuff. 68K in college was even easier.
The point being that we didn't have the luxury of being coddled and it wasn't necessary. A dozen average 9-year-olds from a mill town with a good teacher had no problem with the subject. Guys a little older than me talk about keying in bootloaders with switches when they were that age.
Today I hear things like kids need highly abstract visual CASE tools to get started because they're only twelve. Baloney - stop underestimating the next generations.
Re: (Score:3)
At the same time, even low-end computers these days are extremely complex compared to what we had back then. The C64 had a 6502, which is easy to learn, comprehend and even memorize because of its size. The Raspberry Pi, on the other hand, has an extremely complex CPU and GPU that you can't even get complete documentation for.
My suggestion to anyone looking for the same kind of "experience" we had with the C64, TRS-80 Color Computer, Timex Sinclair 1000 and other entry-level computers from that era, is to p
C ... 'ease of use'?! (Score:2)
Said no one ever?
Re: C ... 'ease of use'?! (Score:2)
Just what I was thinking, If I'd had to understand pointer dereferencing or printf formats aged 10 I'd have given up gone out to play football with the other kids :)
OTOH if you do master C you have a far better understand of how a computer really works than from almost any other language bar assembler.
Re: (Score:2)
IMHO, only assembly will give you that. C doesn't teach you about CPU registers, interrupts, etc. The concept of pointers is still used today, for example when you use arrays. There's nothing magical about it.
Re: C ... 'ease of use'?! (Score:2)
Pointers and arrays are NOT the same thing. Either you've never learnt C properly or youre just crap at it.
Re: (Score:2)
I'm not saying a pointer and an array are the same thing, but unless something changed in the last few decades and x86 is completely alien compared to a Z80, the basic principle is the same. A pointer has the whole system RAM as its array (like some CPU registers, which act as pointers), while an indexed array uses an index to point to specific items in the array. In both cases, they hold a value that points to an address/offset.
Re: (Score:2)
OTOH if you do master C you have a far better understand of how a computer really works than from almost any other language bar assembler.
No, you have not. Neither from C or Assembly. And it is completely irrelevant any way.
How many ALUs does your processor have? How many "register banks"? How do you switch between them in C? Oh, you can't. How in assembly? Oh ... you can't. Processors or "computers" have nothing to do with assembly, C or machine language.
What is a bus? What is an address bus? What is a dat
Re: (Score:2)
uh-huh - now try writing code to take advantage of the number of ALUs and processing units in Java or whatever vaunted language you think is better than C.
I'll wait.
Re: (Score:2)
The ALUs are utilized by the implementation of the processor, not by C or Java or assembly.
If you don't know that, why commenting bullshit?
Re: (Score:2)
The ALUs are utilized by the implementation of the processor, not by C or Java or assembly.
If you don't know that, why commenting bullshit?
What? Maybe get at least a basic understanding how a CPU (yes, even a modern one with a scheduler and instruction reordering) works?
Hint: If you have an arithmetic or logic operation in your instruction stream, it will be executed by one of the available ALUs.
Re: C ... 'ease of use'?! (Score:2)
So you cant access specific registers or the data bus in assembler? Really? I think you've just thrown a lot of words you've learnt into a post in order to sound like you have a clue. Start with 8 bit chips and PICs tomsee what assembler can do then look at all the instructions 64 bit x86 asm has and allows you to do Then get back to me.
Re: (Score:2)
Indeed. This person obviously has never done it. Even with things like register renaming, you obviously can address registers. Even with a modern CPU, you have either memory-mapped IO and port-based IO or both. And more than ever, with a modern CPU, details of the caches matter for performance and sometimes security.
Re: (Score:2)
C programmers, probably the dumbest species on the planet, the hubris is all yours. (Actually it is written hybris, btw.)
Ah, yes. The old fatal combination of incompetence and arrogance. You make a perfect example.
Ever tried to explain a timing-attack to a Java coder? No? That is because you cannot. They just do not understand what you are talking about.
Java (Score:2)
Both my high school and university taught Java first.
Not surprising really. (Score:2)
I wasn't thrilled with Basic, and thought there must be something better, but didn't know what it could be until I took my Intro to Algorithms class around 1979 or so and discovered Pascal.
Lattice C for MS-DOS was $500 back then. I suppose there were APL and PL/1 compilers around, probably for a lot of money. I used Microsoft Pascal on a job around 1987-1988; it had some PL/! and C-
Generational gap (Score:2)
Hypercard. (Score:2)
Then again we had a Mac growing up, but you work with what you have.
Fortan IV and assmbller. (Score:3)
Fortan and DEC assembler.
I was fortunate to have an opportunity in 1968 to learn about computers at the University of Pennsylvania, a summer program for high school kids. We used IBM 360/65, RCA Spectra 70, and a variety of DEC PDP's. For the mainframes, we used Fortran IV. For the mini's, it was octal assembler. Some of the classes were in the same room where the ENIAC was built and operated. It was exciting. Back at high school, we had a PDP-8S, about the size of a countertop microwave oven - an amazing thing for its day - all of 4K or 8K of memory as I recall. For that, we had a high speed paper tape reader from which we could load a Fortran compiler, then write code in assembler or Fortran, just like on the big machines.
"Fortran" was named from "formula translation", meant to be a high level language for scientific computing. It is still a darn good language for number crunching.
#metoo (Score:2)
Starting at age 7 in 1984, I went through GWBASIC, MS DOS, QBASIC, Turbo Pascal, x86 Assembler, Delphi, Elan, C, SPARC Assembly, Clean, Java, JavaScript, PHP, C++, Python.
Also gave Erlang, Rust, Haskell, Scheme, Groovy, TypeScript, Vlang and Unison a try. Still looking for the ultimate language, though, because none of these is...
Assembly Language taught at my High School (Score:2)
That was the programming course taught in the school board I was in at the time (1977ish) Assembly Language (for the IBM 1130 - we'd code in assembly on bubble cards, send them into the data processing centre and you'd get back a printed listing, build results and, if the build was okay, a step by step execution listing two days later. I seem to remember the listings were limited to two pages (to avoid infinite loops).
Interesting course because the teacher was a lush and this was somewhere they could stash
And? (Score:3)
Re: (Score:2)
Some people used to say that BASIC ruined programmers and they had to unlearn all the bad habits it encouraged.
I think it actually helps. When you have tied yourself in knots a few times your start to understand why good programming is so important.
Fortran (Score:2)
What is hackerrank? (Score:2)
I've never heard of Hackerrank before? Should that say something about the bias in their results?
Overly broad age ranges, but still interesting (Score:2)
Coding is trivial (Score:2)
No... a quick
Re: (Score:2)
Always been like that? Hahahahaha. Most GenX people didn't even have a machine connected to a network when they learned programming.
Re: Coding is trivial (Score:2)
Are you familiar with reference manuals?
They were an archaic technology that existed before literally everything you just described as the way it's always been.
Many of us learned to code before Google. I know it's hard to believe, but many people were still able to learn things before Google and Internet video.
Re: (Score:2)
Spoken like somebody that has actually understood absolutely nothing. Fascinating.
basic 1st at 12, then logo at 13 (Score:2)
then cobol at 15, then rpgII at 16, then pascal (by myself) at 16, then C at 18 in the university.
I am only 47, and not cs, but electronics engineering.
but on another note, I see (and sincerely hope) python becoming the next basic.
We need something like basic, easy to learn, installed in all machines, interpreted, "kinda sorta" universal.... Wether that is python or swift or something else, the new generation needs it...
Signetics 2650 assembler for me (Score:2)
Gosh, I learned to cut code using hand-assembled machine code on a Signetics (a division of Philips) 2650 microcomputer back in 1977 or 78.
Just me, the reference manual, a lot of paper, a 2650 CPU with PIPBUG ROM (1MB) and a few KBytes of RAM.
This was a pretty steep learning curve for someone coming from an analog electronics background but I must admit, it was a hell of a lot of fun!
Learning resources? (Score:4, Funny)
We had something called "books". It was like a web page, but printed out on paper, and without any hyperlinks in it. It was still kinda neat though.
Worst of both worlds (Score:2)
The college I attended switched from Pascal to C while I was there, so I got the basics of Pascal and then an advanced C course which assumed prior knowledge I didn't have.
I'd done quite a bit of BASIC programming before college, Pascal seemed a logical step up from that but C was... alien.
Times have changed (Score:2)
But in the 80/90s, you learned basic if a CIS, while CS/CE learned Pascal, Modula, then C++ depending on years ( CS changed as languages progressed ).
Assembly...1st language (Score:2)
BabyBoomer who's first language was taught by a 13th dimensional calculus prof on sabbatical. Started with Assembly then APL writing compilers on IBM1130 with 3K memory stack.
"Ease of use"??? Hahahahahahahaha! (Score:2)
Simply allocating and de-allocating memory is a huge PITA.
Re: (Score:2)
C did not try to block users from trying new idea.
C is what sorted the best of a very smart generation from people who could type out code from a book.
Obviously (Score:4, Interesting)
Of course there are generational differences in first languages and learning resources--how could there not be?
I was born in 1945. I read about the IBM 1401 but did not see my first computer until 1963 when I visited the local university and saw Spacewar being played on a DEC PDP-1. My first languages were Algol on the Burroughs B-5000, FORTRAN II on the IBM 7090 and assembler language on the PDP-1 because that was what was available. My learning resources were the people at the Stanford Computation Center, because that was what was available.
I socialized with the grad students at the Computation Center, learned PDP-6 assembly language, was invited to work on the Algol-W compiler, the predecessor of PASCAL, got to hack on the B-5000's Algol compiler, and became the system programmer for the Stanford AI Project.
When I moved to New Hamsphire my learning environment changed: I got to support an IBM 360 in addition to a PDP-10, then went to work for DEC where I learned Bliss and got to know some highly skilled programmers, though they were called "Software Engineers" by then. I didn't use BASIC until 1978, when I worked on the run-time library for VAX BASIC.
I imagine the same is true for all programmers: your first language and your learning environment depend heavily on your location in time and space.
FORTRAN 66 (Score:3)
The first language I learned, and was taught on, was FORTRAN 66. FORTRAN 77+DEC extensions was a significant improvement, everything else was either no improvement, or steps backward (C++, in particular). I now use FORTRAN 95 for most things, only because I have to work with non-standard binary output written by C and C++, solely to open files with ACCESS = 'STREAM'.
Along the way, I learned a lot of other languages, but the only really useful applications have been in FORTRAN, JOVIAL, or Matlab (which isn't much of a language, like C, and I don't need it to be as good as the others for the purposes I use it). I can follow most assembly code pretty easily, with some extensive experience with PDP-11 and MIL-STD 1750A.
I am really not that interested in programming as a thing unto itself, none of the other goofy languages like Python, LISP, etc. I wasted 3 months of my life learning Pascal, which is when I first realized that "computer science" AKA "enhanced clerk-typist" was diverging from a tool to a religion.
The language does not really matter, most of the time. If you have the proper degree of discipline and a clear vision of how to go about it, you can right crap code or very clear code in just about any language. It's a tool, not an end unto itself, and you need to remember that ever second. I know every clever trick in the book, but I routinely reject code that uses a lot of them. Clarity and ability to understand it is more important than showing how clever you are.
asm for everyone, at least once (Score:2)
Spent three years on a 3 person team writing a paint package on a TI TMS34020, all in asm.
Its memory was the frame buffer and it drew everything nearly instantaneously.
The 020 was 32 bits, but bit addressable. Kind of a GPU, kind of a CPU.
I wrote the flood fillers and Type 1 font rendering. Kids today have no idea how all
of the low level base library functions they can just call had to be written by somebody once.
The company was an OEM to other paintbox vendors and when they saw what we did,
they thought th
love at first (Score:2)
First job out of high school was at the waste water treatment plant.
In a basement. With a hose. And a raincoat. Clearing overhead conveyors. Ick.
The front office had a beautiful PDP8E. Behind glass, all brown and yellow and blinky.
It controlled valves and life gates throughout the city. First computer I ever saw in real life.
Quit. Enrolled in college. Learned Basic on a Xerox Sigma. Drew graphics on a Tek 4013
in APL. Married, back to factory work. Factory got a computer, needed a programmer.
Wrote inventory
Many different languages. (Score:2)
I went through CS and Engineering undergrad in mid/late 70's at a fairly decent university for CS.
We didn't use any particular language from class to class. I think the order I first used languages in was (roughly):
Actually Gen Z are the generation after millenials (Score:2)
Millenials are generation Y (me) and then oldest have already hit 40 as they're defined as those born between 1980 and 2000.
Re: (Score:2)
Defining generations: Where Millennials end and Generation Z begins [pewresearch.org]
Millennials, like yourself, were born between 1981 and 1996.