9 ms·
When I was little, back in post-Soviet Russia (circa early 1990's), the prevailing progression of a developer was "learn BASIC, learn Pascal, then learn C". And
by astral303 13y ago
When I was little, back in post-Soviet Russia (circa early 1990's), the prevailing progression of a developer was "learn BASIC, learn Pascal, then learn C". And, if you were extra badass, you'd learn assembly. BASIC was the first step, simple and easily accessible on most computers of the day (ZX Spectrum, MSX, Atari, GWBasic/QBasic on MS-DOS).
Best of all, being an interpreted language meant that you often had the source available to tinker with--"open source" of sorts. I remember tweaking GORILLA.BAS when I was 12, altering colors, inserting extra screens and text and silly stuff like that.
I think there's a whole generation that grew up on BASIC. I wonder what today's generation growing up on?
- wiremine 13y ago> I wonder what today's generation growing up on? Take here to ask the same question. What hooked me on BASIC was the graphic capabilities. It was relatively easy to create dumb little graphic programs: circles that changed colors and grew, etc.
- anigbrowl 13y agoUnless you ended up using a Commodore 64 or one of its ancestors which was completely sprite-oriented and thus not much good for canvas-type programming. I've often thought my life might have been different if I had asked my parents to get me a Sinclair spectrum instead of relying on the fact that our school had Commodore computers to push them towards a Vic-20.
- pvg 13y agoSprites? Luxury! We went to bed hungry dreaming of a linear framebuffer while seven angry pixels fought viciously over a single colour bit, keeping us awake. On an Apple ][, that is.
- fit2rule 13y ago>> I wonder what today's generation growing up on? My kids are growing up on the same old 8-bit machines that I grew up on. After all: those old 8-bit machines still work just fine for the task of learning to write code. Any reason not to still use old 8-bit machines to learn programming? I can't think of a single one.
- DanBC 13y agoThere was even a BASIC tailored for the Herculese graphics card (720x348 1 bit per pixel) which I used for simple fractals and other graphics noodling.
- cmang 13y ago> I wonder what today's generation growing up on? Immediately HTML+Javascript comes to mind, as a language interpreter that every kid's computer comes with. I would guess that is the top "first language" for kids today, with things like C#, Python, Ruby, PHP and Java somewhere in 2nd place (as popular server side and classoom languages).
- munificent 13y agoJavaScript is the BASIC of today. Which means, by extension, many of today's JavaScript frameworks are the VisualBASIC of this generation: frameworks that let you use a "child's" language for grown-up work. The reactions to using JavaScript for real applications exactly parallels what people thought about VB when it came out.
- JetSpiegel 13y agoThis mirrors my experience. Javascript is so basic (pun intended), it's not even considered a real language. Someone who tweaks Wordpress templates wouldn't consider himself a programmer.
- Jtsummers 13y agoWhen I worked with high schoolers I liked to introduce them to python. The documentation, IMO, is clearly written and easily understood by programming novices. It's got OO, imperative and (limited) functional paradigms available. Graphics are fairly straightforward, for example the built in turtle graphics library. With IDLE it has a good, free, crossplatform IDE that's simple enough to not overwhelm new programmers, but provides every feature you really need. The REPL lets new programmers quickly explore different parts of the language and their programs. And for sticking with primarily imperative code (here I mean that the programmer isn't designing new objects, though they may be making use of existing ones), the syntax is ludicrously straightforward once they get past the mandatory whitespace and spaces versus tabs.
- k-mcgrady 13y ago>> "I think there's a whole generation that grew up on BASIC. I wonder what today's generation growing up on?" About 6 years ago when I was in high school we were using...Pascal! During that time I actually did some work experience with Borland (creators of Turbo Pascal) and they found it hilarious we were still using it.
- vivin 13y agoAhh Borland! We used to use Borland C++ in high school (back in the late 90's).
- deleted 13y ago[deleted]
- voltagex_ 13y agoVB6 and Pascal chiming in here, too. I think I dropped that course after a while - I was doing it via distance education because my school didn't offer any programming classes. This was some time around 2008-9.
- notarockstar 13y agoScratch.
- protomyth 13y ago> I wonder what today's generation growing up on? Pretty much every 8-bit came with a BASIC[1]. I would imagine a lot of kids today don't program anything since it is much less accessible. 1) had to buy the cartridge for the Atari 8-bits
- watmough 13y agoYeah, similar experience here, but when every web browser (to some approximation) includes Javascript, you can hardly say that programming is inaccessible. In most every possible way (except possibly writing files), Javascript simply wipes the floor with Basic.
- anigbrowl 13y agoIt's highly available but not accessible, ie immediately graspable by a new user. For example, most tutorials take the view that before you can write any JS you first have to know (or learn about) creating a basic web page. Of course, this is quite often what people want to do, but on the other hand they might be better off using node.js or some other hosted interpreter like http://math.chapman.edu/~jipsen/js/ http://math.chapman.edu/~jipsen/js/ I think there's a lot of value in letting people approach programming through doing very simple stuff such as automating calculations. Of course a potential downside to that, which was a big problem for Basic, is that this can get in the way of learning about program structure early on and encourages spaghetti code.
- protomyth 13y agoExcept the cost, no replacements for those cheap 8-bits such as the ZX-81, Vic 20, or Atari 400. Computer programming is less accessible than in the late 70's and early 80's.
- morganherlocker 13y agoCodeacademy seems to be the way most of my friends are getting into programming. Since you code in a sort of virtual browser, there is almost zero barrier to entry. I have seen only one person go from this to real professional programming (out of ~20), so I do not know if it really is more accessible in the ways that count, but it has been an interesting trend anyway.
- vivin 13y ago> "learn BASIC, learn Pascal, then learn C" So much of this! I remember the older kids talking about Pascal (they were using TurboPascal at the time) and to me it was some mystical, highly-advanced form of magic, a sort of "more complex" BASIC. However, I never actually learned Pascal or used it, because I jumped directly from BASIC to C (actually ended up doing both for a while). The reason I even found out about C, was because I asked my computer teacher in junior high how people made games, and she told me that it was a language called C. So that summer I got myself an ANSI C book and started teaching myself C. It was very difficult at first but I slowly got the hang of it. By junior year of high school we were doing C++, and having done C it was really easy for me to switch to C++.
- peapicker 13y agoI actually had Fortran-77 between Pascal and C. C, compared to Pascal, was like taking off the handcuffs.
- cleversoap 13y ago> how people made games In my experience this is the common question amongst everybody (myself included) that started programming young. Some adult somewhere (how sad that I don't remember) took me seriously enough and gave me some books so I started writing in C, BASIC, and assembly and I was too stupid to realise that it was supposed to be too hard for a 9 year old. Today (as in literally this moment in time) I am still writing C for games.
- zem 13y agoi taught myself c by prototyping programs in qbasic and then translating them as straightforwardly as possible. qbasic also had an absolutely brilliant integrated help system; that's one of the things i've always admired microsoft for.
- NKCSS 13y agoFor me it was QBASIC -> VB6 -> VB.NET, a path that a lot of people I know took as well.
- gamegoblin 13y agoI am 21, and when I was 12 I started coding with TI-BASIC, which is a (terrible, terrible) flavor of BASIC that comes on most TI graphing calculators. Most kids still have these calculators, so I imagine there are several learning on it.
- analog31 13y agoDo you think a graphing calculator is worth bothering with at all? I'm too old to have used one in school. The cynical side of me thinks that they only exist because they have a captive audience of school kids who are required to buy them.
- sirsar 13y agoI have found that the TI-83 series handles numbers remarkably better than many programming languages and even software packages. The built-in functions are diverse, composable, and very powerful, yet simultaneously simple to use. When I want to answer e.g., a statistics question, it's a huge time saver to plug it into the graphing calculator rather than anything else. I often prefer it even to WolframAlpha. In that respect it's well worth the $100 or so it cost.
- vanderZwan 13y agoOTOH, thanks to those graphical calculators a number of those kids will jump straight to Z80 assembly to unlock the true power of their hardware. I still think this is one of the best programming tutorials I've ever read, since it managed to make assembly look easy: http://www.ticalc.org/archives/files/fileinfo/268/26877.html http://www.ticalc.org/archives/files/fileinfo/268/26877.html I had no trouble understanding pointers when I had a go at learning C++ later (although I'm sure the experience has left a number of other bad coding habits).
- gamegoblin 13y agoIndeed. A friend of mine, calc84maniac (Brendan Fletcher) even made an on-calc assembler so you didn't need a computer to write assembly. The folks over at http://cemetech.net/ http://cemetech.net/ are working on a new version of that tutorial you linked, IIRC.
- muyuu 13y agoI started in the mid-late 80s at 4-5 years old, first BASIC and then straight to assembly. I think my first full game in assembly (which was pretty simple) I made it at around 9 years of age. 6502 assembly is very easy, you just really needed a good book, or a patient parent, and you were sent. The machine was grokkable. To be fair this approach has many merits with the computers of the time. My main machines were a Commodore 64 (8-bit) and then the Amiga (16 bit models that were very popular by 1988~1991, although the later Amigas are 32-bit). Lots of people followed this progression. At the time many of us saw programming as a more advanced, "cooler" activity than just playing. It was admired in the nerdy circles that you came up with some clever routine in assembly that did something seemingly impossible for the machine. I think the form of BASIC that came with the Commodore 128 is ideal for kids to learn. It even came with an asm monitor runnable directly from the BASIC prompt. If I have kids I think I will teach them this way, it's so effective.
- aufreak3 13y agoIt was BASIC and assembly initially, on the zx spectrum (at a friend's). A gentleman introduced me to BASIC and showed me a loop with an "I = I + 1" which made me argue with him about how that cannot be true :) .... and then I suffered the permanent imperative head damage before waking up many years later. Though the beginnig was with a blow to the head, I did enjoy the immediacy of BASIC. (Edit: I had to change the variable to caps)
- t__r 13y agoI too started with Basic. First steps on the Acorn Electron, then got an MSX and finally switched to a PC and used Q(uick)Basic. My ambitions ran ahead of my capabilities. Being fascinated by operating systems (I vividly remember tinkering with OS/2, Windows 95 Beta, DesqView/X, Linux 1.1.18) I wanted to write one on my own. The main aim was to have that magical thing called multitasking. I wrote a "kernel" in QBasic. Upon starting a new "process" it would: - read in the text file of the new process, which was a specially programmed QBasic program that included predefined hooks to facilitate preemptive multitasking and that was capable of saving and loading its state (i.e. values of all variables). - merge this text file with the text files of all other running processes, including the "kernel", and saving the new "system image" to disk. - call the "save state" of all running processes - exit from QBasic by running a batch file that would restart QBasic with the new system image, which would initiate by calling the "load state" of all processes. It kind of worked :-) Such a pity I lost that code...
- mathattack 13y agoSame, though lots of us wanted to skip Pascal and C. :-) It's a strange language to celebrate in retrospect in that it lacks the street cred of both academics and hard core engineers. To your point, in a sense it's like remembering your first bike. Of course the first mechanic of that first bike made his way to the Dartmouth presidency.