Slashdot Mirror


Slashdot Asks: How Did You Learn How To Code?

Last week Apple's CEO argued that computer programming should be a 'second language', and that it should be a required subject for all students starting in 4th grade. But a large number of professional programmers didn't learn how to code in a formal school program, either because they're self-taught or because they learned on the job. There's a lot of abstract discussions about the best ways to teach coding, but if there's any group that's uniquely qualified to answer that question, it's the Slashdot community.

So leave your answers in the comments. How did you learn how to code?

515 comments

  1. Really? by Anonymous Coward · · Score: 0

    But a large number of professional programmers didn't learn how to code in a formal school program, either because they're self-taught or because they learned on the job.
     
    Citation please.

    1. Re: Really? by Anonymous Coward · · Score: 0

      Not entirely inaccurate. Professional programmer here who learned on the job all the way from hello world.

    2. Re:Really? by Anonymous Coward · · Score: 0

      common knowledge

    3. Re: Really? by Anonymous Coward · · Score: 1

      Stack Overflow!!

    4. Re:Really? by Giant+Electronic+Bra · · Score: 3, Interesting

      Myself and most of my friends pretty much taught ourselves to code.

      Actually I can't even say that I learned at any one specific point in time. When I was a kid (this was back LONG before anything like a PC, or even DEC mini-computers) I'd go work with my father on the weekends. Before that he taught me electronics, but then at work he'd have me enter his FORTRAN programs on punch cards for him. I must have been 6, so that was the start. Then I remember playing with a PDP-11C a few years later, typing BASIC statements on the TTY and watching it print out answers to simple statements. Years later, around 1980 my uncle gave us a PACE based computer typesetter, and we played with that, read the assembly language book, burned some instructions into ROMS, etc (I think the thing basically ran CP/M, but it had no command interpreter at all). It was right after that when Commodore started pumping out affordable machines, VIC-20 I recall particularly as the first machine I really wrote serious software on (I recall coding a version of Moonlander for that).

      I did eventually take some programming classes in college, FORTRAN, Pascal, Assembly language, etc.

      Frankly I think this whole "teaching kids to code" thing is overblown. Its fine to expose kids to something like this, and maybe see if a few of them take to it. Imagining that it will do much for the rest or burning a lot of resources on it seems foolish though. Teach them to think and solve problems, they'll figure out the tools.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    5. Re:Really? by Anonymous Coward · · Score: 0

      >> But a large number of professional programmers didn't learn how to code in a formal school program, either because they're self-taught or because they learned on the job.

      > Citation please.

      Actually, it's not needed. This can be solved by simple logic. At a time, there were no schools teaching "Computing".

      In the USA this era may have passed and many of those self-taught professional programmers might be now retired. Now so in countries which were (and are!) late comers to computer science (like most underdeveloped and emergent nations).

      I myself had to enter an engineering course because a computing curriculum would start at the Mathematics Institute some 3 years later (circa 1980, IIRC).

      In my case, I was in the first year they allowed calculators in high-school ('74 or '75, not sure). Prior to that people had to use slide rulers.

      I remember having to campaign heavily so that my father would buy me an HP-25 (he's a physician); the alternatives were a Sinclair 4-operation calculator or a Japanese equally simple one. I want to believe it was made by the future Sir Clive Sinclair of the ZX-81 fame. Curiously, the seller at the department store apologized for showing me the Japanese one, like "... and we have this one, too, but it's Made in Japan". Mr. Akio Morita's book with the same title always felt very profound, because in those mere three words, he captures how hard it was to leave very humble beginnings and how fruitful was the work they toiled to lift Japan. Of course, we can find examples of how this was not a 100% beautiful process, so this must be seen in a realistic light, too.

      These last 15 years, whenever I heard a scornful mention of "Made in China", I always made sure I never would forget what that salesman said back then.
      I'm sure my son or grandson (God allowing) will eventually demand some kind of Chinese product -- and everyone will think it's a normal thing...

      Very well, an HP-25 was bought and I spent my vacation reading the manual, entering those almost assembly-like commands and starting my journey into Computing, without any kind of support or backing.

      Years later, I studied Pascal at the College and then got a job in the University's IT department. By that time, I was dreaming about the computer that two guys were building: Jobs and Woz. But my adventures would lead me to meet the Z80, which was so incredible at that time that it looked like some alien thing.

    6. Re:Really? by sinan · · Score: 1

      Anecdotally, I learned Dartmouth Basic in 1972 in Bellevue Community College to prepare the report for a Physics Lab. Then at University of Washington took Engineering 141 for Fortran programming on CDC6400 thru IBM26 punched cards. In 1973 learned RPG-II(or was it IV I don't remember) to run task scheduling reports for our group on a Varian73. In 1974, I was programming an SDS920 as an ATE to test electronic circuit cards. In 1975 I was programming on PDP-11 RSX11 in Basic and Fortran, and on an HP21MX in Fortran4. Generating ATE programs and circuit analysis programs. Then came VAXen, SparCen, writing compilers, interpreters, software for aircraft, SunOs, Solaris, Linux and finally exclusively Mac OS X.

    7. Re:Really? by sinan · · Score: 1

      Forgot to say, Mac OS X came after I retired in 2013 after 38 years of programming.

    8. Re:Really? by sinan · · Score: 1

      I'll add one more. Around 1982, we had to test printed circuit boards with microprocessors. So we had to come up with a way to control the bus from an external device. Fluke 9020 under GPIB from an HP-1000 computer system fit the bill. However, we did not have a specific compiler and loader for that situation. So we had to write the test program in assembly, and then hand assemble it, load it to RAM, and then run it from RAM. It was fun. If you wanted to run a C program, first you had a compiler translate it to assembly language, then hand assembled it. By the time 1984 came around tools began to appear. Some we wrote, some we bought. To this day I cherish my capability of whenever I look at a piece of code, let it be C, C++(with virtual tables), Swift, Fortran or whatever, translating it into machine language in my head, however faulty it may be, and thus having an insight as to how it operates. One thing HP-1000 CPU had was the indirect bit in memory addresses. That was very interesting.

    9. Re:Really? by Darinbob · · Score: 1

      I agree that teaching kids to code is not a good idea. I even think high school is too soon. There are very important concepts to learn first. It's like when I was a kid and had a 100-in-1 electronics set. It was fun to play with but I did not understand very much of what was going on. I could not make a circuit of my own that worked except as tweaks to an existing design. I lacked the necessary math and physics background (generally this is first year college stuff).

      And of course "coding" is just a tool. To be a programmer you also have to know other stuff, domain related knowledge. Can't do scientific programming without understanding the science and numerical analysis. Can't do a lot of graphics without understanding geometry and linear algebra. And so forth. But a lot of people fumble along as juniors in those types of programming byt having a set of patterns that they can replicate or look up on the web.

    10. Re:Really? by grcumb · · Score: 2

      But a large number of professional programmers didn't learn how to code in a formal school program, either because they're self-taught or because they learned on the job. Citation please.

      In the early days, many people didn't have anyone to learn from. If you weren't enrolled in a University computer science programme, you probably had close to zero access to formal instruction.

      For my part, a colleague of mine came by my desk, saw me struggling to handle a conditional with a macro, and showed me how to create a control structure in Visual Basic. Spent a few months playing and reading MS' Knowledge Base in text mode through a 9600 baud connection. Then I found Kernihan and Ritchie little book, and suddenly it all made sense.

      Fast forward 6 years to the late '90s, and I was writing systems software for NOC services. The dot com boom happened, and Bob, as they say, was my uncle.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
    11. Re:Really? by Bert64 · · Score: 1

      When i was in school, there were no formal programs for coding...
      Also in my experience of the IT field as a whole (not just development), those who at least started out being self taught (ie those who have a general interest in the subject and will spend their own time learning such things) are massively better at the job than those who only learned due to formal education (to such people its just a job, they have no real interest in the subject beyond their paycheck).

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    12. Re: Really? by Anonymous Coward · · Score: 0

      I was given a VIC-20 as a hand-me-down from my cousin at age 12. My cousin got my dad's used IBM XT computer.
      My mom, (crazy from being spurned but also) furious that I was given a "toy" computer while my cousin got the "serious business computer," threw the programmer's manual and user reference at me, and said "I want you to learn every single function this computer can do!"

      She clearly didn't know what she was doing - but I took her instructions literally. I actually memorized all the PEEK/POKE memory locations that did anything I could recognize, and became a whiz at fiddling, although I never had the wherewithal to actually finish my first project, which was a helicopter flying game. Of course I didn't know how to program and I tried to make the opening animation all with nested FOR loops... Never got off the ground.

      From that day everything I know has been self taught.
      BASIC - from the VIC-20 manual.
      BSD 4.3 - started with ta stranger's advice to read "man man" and learned how to use the man pages for every command.
      Windows administration - by reading the entire MCSE study guides.
      FilemakerPro - by making a database of my record collection.
      SQL - by poking around in Access and making a resume selector application.
      Visual Basic - by following a "for Dummies" book to fix a scheduler application that failed in Access. Later, used VB to invoke win32 APIs and didn't know how "advanced" this actually was.
      ASP with vbscript - a 10 minute lecture on http by a coworker and then I started with the reference manuals.
      Java - started with a UML designer plugin, learned to write an API and to refactor constantly - with very good advice from senior coworkers. Java is great because it was my first exposure to threads.
      PHP, Python, perl - I inherited a few applications and needed to look up the language references to maintain these.
      Application security - was lucky enough to work with some of the best people in the business. I drank in two really good books - Ross Anderson's Security Engineering and Chess/West's Secure Programming with Static Analysis.
      Jump forward 15 years, and I am now doing security design reviews, widely considered an expert although my mission is to mentor others to go beyond what I have done.

    13. Re: Really? by Anonymous Coward · · Score: 0

      I forgot to add - after FilemakerPro and before SQL, I took a semester or two formal training in pascal. I only used pascal once, to write a contact manager for a friend. She used it for years afterwards, which was really nice to hear.

    14. Re: Really? by Anonymous Coward · · Score: 0

      But I use my knowledge of byreference or byvalue.... or differentiating := from = nearly every day. In fact == vs. = is still a quite common programming error in Java.

    15. Re: Really? by Anonymous Coward · · Score: 0

      The first chance I had at programming was the BASIC cartridge for the Atari 2600 console(1980). Then that led on to the Atari 800 (1981+). School was teaching Pascal and BASIC, but very simple programs. Meanwhile at home I was learning about interrupts, VBI, players missile graphics and animation.

        At university, we had to learn Pascal, C, Prolog, LISP, assembler (80x86, 680x0, TMS340X0).
      By 1991, I was programming for SVGA and TIGA with 24-bit color boards and Soundblaster audio.

      That is the fun part of programming, continuous learning.

    16. Re:Really? by flargleblarg · · Score: 1

      I agree that teaching kids to code is not a good idea.

      Gotta disagree with you there. If you mean forcing kids to learn to code (as in required curriculum) is not a good idea, well, then, ok, maybe. But to refuse to mentor a child who is eager to learn programming is stupid and shortsighted, IMHO.

    17. Re:Really? by Darinbob · · Score: 1

      Well sure, if they want to learn. But when they set up classes for it specifically there's a lot of pressure to join that class.

    18. Re: Really? by Anonymous Coward · · Score: 0

      Learning to code what? Learned Common Business Oriented Language on the job. From there I taught myself assembler for every machine that I worked on, plus Perl, Python, C, C++, Java, Visual Basic, Rexx, P/L1, FORTRAN, Focus, RPG, various reporting and scripting languages.

    19. Re: Really? by Anonymous Coward · · Score: 0

      And taught myself Forth, Pascal, Bison, and Flex, too.

    20. Re:Really? by lsatenstein · · Score: 1

      When we teach children mathematics, we should also teach them some basic programming. Less than, equal, greater than and some looping to help the youngster to better understand the mathematics.

      Most youngsters have problems with multiplication to 13 times tables and long division. The computer program, is what aids in learning the two operations.
      Noone is asking a child to write beyond his level. But a computer program lets a student learn better than with the desk calculator that the student uses as a cheat sheet.

      --
      Leslie Satenstein Montreal Quebec Canada
    21. Re:Really? by CAOgdin · · Score: 1

      Coding and programming are not the same thing. One is a subset of the other, and you need that broader horizon.

    22. Re:Really? by newbutold · · Score: 1

      Absolutely right... teaching kids to code is way overblown!! Teach them to think first. You can teach a monkey to code. Anyone can put a few drag and drop widgets together and come up with a web page. But, if you want to create apps then you need to be a "Programmer". I am amazed at how many experienced and learned "coders" just sit down at the keyboard and start creating code on the fly without any idea of structure and process. I don't care how bright you are or how many letters follow your name if you don't plan, design, test how are you going to know you have achieved your goal. If you don't have or understand the function of the OS, the compiler, the physical hardware you're swimming up stream. A programmer needs to know what the OS/HW will do under certain conditions. Just writing code is like setting off on a long trip with no destination, no plan and no tools hoping that you will eventually arrive at the place you think you should be at.

    23. Re:Really? by Giant+Electronic+Bra · · Score: 1

      True, but it does depend on the job. I mean there's a LOT of applications out there that don't require much more than some simple programming. Many that really don't WARRANT a lot of design. However, there's a tendency for those sorts of things to grow into things that SHOULD HAVE been designed. Everyone should know how to think and problem solve, and its definitely true that schools aren't the best at teaching it. I'll say this though, any US school does it better than pretty much EVERY Chinese school! lol.

      --
      "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
    24. Re:Really? by Anonymous Coward · · Score: 0

      AFAIC programming is designing and implementing an algorithmic solution to a problem. Coding is the part where you implement that solution in a particular language and type it in.

      Since most "programmers" seem to skip the problem analysis and design phases, and just start coding haphazardly in their language of choice, there's often no practical difference!

  2. Picked up a book. by PhrostyMcByte · · Score: 4, Interesting

    Thank my Uncle for introducing me to DOOM when I was ~10 years old. -- immediate "I want to make that". And so I picked up some books from the library.

    1. Re:Picked up a book. by Anonymous Coward · · Score: 0

      And I'm so proud of you!

    2. Re:Picked up a book. by davester666 · · Score: 1

      Yeah, in grade six (elementary school, gr 1-6), you got to visit junior high (gr 7-9), and during that visit, I saw computers [Apple IIs]. I took the computer class [well, I took every computer class I could]. Day 1, instructor has us do the "Hello World" program in Apple Basic.

      Me: How to I make it do a listing of what's on the floppy disk.
      Instructor: I don't know.
      Me: Can I borrow the manual for the computer until the next class.
      Instructor: Sure, sign it out.

      From that moment until I moved to High School (gr 10-12), I knew more about programming than the instructors.

      And IIRC, you make it do the listing by doing PRINT "(cntl D)CATALOG" Might need a semicolon at the end

      --
      Sleep your way to a whiter smile...date a dentist!
    3. Re: Picked up a book. by Anonymous Coward · · Score: 0

      library here too. bbs was too expensive.

    4. Re:Picked up a book. by Anonymous Coward · · Score: 0

      I am betting that is how 90% of us were introduced to it....

  3. What qualifies as coding? by Anonymous Coward · · Score: 0

    What qualifies as coding? Is it programming languages, or can it be as simple as doing stuff in mIRC, Mathematica, and Matlab?

    1. Re:What qualifies as coding? by Dunbal · · Score: 2, Insightful

      Gee do Word and Excel Macros count? How about doing Maya animation?

      Coding usually refers to programming a computer, not just using an app to get a computer to do stuff but writing the app.

      --
      Seven puppies were harmed during the making of this post.
    2. Re: What qualifies as coding? by im_thatoneguy · · Score: 1

      I would day it's ambiguous. I learned coming through BASIC but it was practically a fancy batch script more than a program. After that I learned PHP and it's hard to call that an "application" either. I learned C via cRobots which also isn't an application writing task. I became a proficient programmed learn maxscript for 3ds max. I never wrote a "application" in that either, although it had a user interface and database backend and processed data. All the hallmarks of an application but no executable. I think a better definition of programming is writing instructions that process data and either act on it out output new data. From that definition yes mel programming in Maya is programming, yes web JavaScript is programming and yes so is a lot of matlab.

    3. Re: What qualifies as coding? by Anonymous Coward · · Score: 1

      My favorite apps are vi and gcc

    4. Re: What qualifies as coding? by Dunbal · · Score: 1

      I wasn't trying to trivialize some of the work people do on their machines but if you broaden "coding" enough then virtually anything done on a computer apart from straight data entry/query and gaming can be considered coding. In the case of PHP - PHP is an interpreted language so you're not writing a traditional app with it's own exe file, but it's still a program with a clear purpose. "Coding" with mathematica is using someone else's program to solve a particular problem you have, not creating something for other users to use and interact with.

      --
      Seven puppies were harmed during the making of this post.
    5. Re: What qualifies as coding? by Anonymous Coward · · Score: 0

      "coding" to those who promote it means "doing stuff with computers, you know like writing up a website or this app on my smartphone". in other words they have no f*cking idea what they are talking about. no surprise there of course.

    6. Re: What qualifies as coding? by Anonymous Coward · · Score: 0

      You are being pedantic. Coding is when the user needs to express commands in a formal syntax, (and correct semantics) which won't work correctly otherwise.

      That includes matlab and macros. Even if a user only drag-drops commands into a workflow, they need to get the semantics correct to accomplish the task. This is a higher kind of programming but still programming.

    7. Re:What qualifies as coding? by Ol+Olsoc · · Score: 1

      Gee do Word and Excel Macros count? How about doing Maya animation?

      Coding usually refers to programming a computer, not just using an app to get a computer to do stuff but writing the app.

      So amusing that someone compares using Maya as an afterthought to a word or excel macro.

      Having come up through what I suspect is a very common route, that is getting a early pc. and having a lot of 3-d experience, I'm interested in the experiences of people who find that as easy as writing an excel macro.

      I started learning coding the way I suspect a lot of people did back in the day. I had an electronics background, got involved with working on 70's computers, went to making wirelists and punchcards, shortly after that came the first PC's I cut my teeth on a C64 as far as really taking off on coding.

      Then in the days of the Amiga 500, which I got for video titling, I found out about 3D design rendering and animation. I started out using Imagine, and picked it up to the level that I demoed it to my employer, and suddenly I was a 3d animator.

      Those were some heady days, with their own joys and trials. Frame buffers, VTR controllers, the joy of getting the objects tweaked just right, the heartbreak of seeing your awesome animation turned to mush when the final product was a VHS tape.

      Then working in that mode, graduating from Imagine to Lightwave, then abandoning the frame buffers and tape.

      Now its Maya, with Lightwave as secondary but still used.

      But to your equivalence post, one of the most amusing aspects of working with 3-D was that I got a fair number of requests to "teach me", or "teach someone", and while I'm pretty good at explaining rather complex operations, it was something to see the enthusiasm go away when they sat down with me and actually saw what went into the effort. Usually took about 15 minutes to decide that for as cool as the results might be, the process behind it was not what they wanted to do.

      Having both experience with coding, and 3d work, both self taught, neither is for everyone. Anyhow, if you have any Maya demos, I'd love to see them.

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    8. Re: What qualifies as coding? by Ol+Olsoc · · Score: 1

      "Coding" with mathematica is using someone else's program to solve a particular problem you have, not creating something for other users to use and interact with.

      Do you have to write your own compiler to satisfy your requirements to be real coding?

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    9. Re:What qualifies as coding? by Anonymous Coward · · Score: 0

      Coding means developing applications if you're an applications developer. It means something different if you do something different. Code written in Terrapin Logo is still code, even if it only functions inside an application. An IF statement is still code whether it's in a standalone app, a MATLAB function, or an Excel cell. The world beyond developing applications is full of code and it's not limited to traditional computers. Graphing calculators use code. Standalone test equipment uses code. Whatever little gadgets are popular with geeky kids these days (I'm out of the loop there) use code. Sometimes the code is written on a computer and transferred, sometimes it is entered directly on the device. Coding refers to generating code; the formats, methods, and objectives vary tremendously.

  4. by playing the games ... by mlheur · · Score: 2
    1. Re:by playing the games ... by darkgumby · · Score: 1

      Me too. I still have mine.

    2. Re:by playing the games ... by Anonymous Coward · · Score: 0

      I remember that book well, I owned it and its predecessor.

      I didn't know anything about different BASIC variants, so I recall typing in a lot of games that didn't run because they were the wrong dialect, and trying to figure out how to make them work.

      I also bought this book at Radio Shack and, while it was educational and entertaining, it didn't take me long to realize it wasn't written for TRS-80 BASIC; it's from the mainframe/mini era. Tandy just slapped a picture of a TRS-80 on the cover so they'd have some kind of programming book to sell!

  5. The usual way by russotto · · Score: 5, Insightful

    That is, the usual way for 1980s computer geeks. Self-taught BASIC on an Apple II using a few books on Applesoft and Integer BASIC. Later Pascal also on the Apple II with a few books including Jensen and Wirth's PASCAL User Manual and Report. Learned C (K&R, mind you, none of that prototype crap) on a Mac XL with the old Megamax compiler. Picked up 6502 assembler out of necessity in there, also 68000 and 6809.

    1. Re:The usual way by Moblaster · · Score: 4, Insightful

      Because back in the 1980s computers booted to the BASIC command line interpreter/REPL. Nowadays, there is, more or less, no such thing. Closest similar thing most non-geeks will get to is a browser console, and while that is reasonable debugging tool for pros, it's not a similarly friendly programming tool for beginners.

      In fact, you practically need to be an experienced developer even to get a modern IDE up and running. Eclipse? Xcode? Not for the faint-hearted.

      Not sure about hard statistics, but I'd say it's a safe bet most new developers these days need to be shown how to get going. Beyond that, they'll naturally self-teach and bootstrap themselves, or fail out early. Because at the end of the day, no matter how you learn, your practical knowledge (meaning libraries and frameworks and tools, if not entire languages) will be functionally obsolete within two years, formal CS concepts and emacs/vim godliness notwithstanding.

    2. Re:The usual way by Anonymous Coward · · Score: 0

      Same here. Learned Commodore Basic by reading (and hiring a 15-year-old to tutor me for a few hours). Graduated to Basic on an IBM PC at the office. Went from there. dBase III and derivative languages, C, C++, Java, PERL, SQL, Visual Basic 4-6, Visual C#. Mostly self-taught with some sporadic community college courses along the way to pick up more structure. Read books on algorithms and best practices along the way. 32 years later, still no CompSci or related degree.

    3. Re: The usual way by Anonymous Coward · · Score: 1

      I learned by giving up my family wealth and scour the globe learning what it is to live like a desperate renegade.

      Until a man freed me from a Chinese prison and told me to find a rare blue flower. Once I found this flower I had to climb a mountain and find a monastery where trained rigorously the secrets of QBasic.

    4. Re:The usual way by joshuao3 · · Score: 1

      Ditto, Essentially. I was that 10-year-old that read every single page of the GW BASIC manual no fewer than 5 times each, even though I was actually coding in another version of BASIC. Moved onto Pascal as I matured a bit and picked up some assembly when I just couldn't get it to do things fast enough for me. I studied the "PC Interrupts" reference almost every day so I could get access to the coolest parts of the OS. Moved onto Java in college and settled back into the web languages when I started coding for a living.

      --
      Monitor bandwidth usage on IIS6 in real-time: http://www.waetech.com/services/iisbm/
    5. Re:The usual way by Deep+Esophagus · · Score: 1

      Yup. I was able to teach my kids how to open and use QuickBASIC when they were little in the 90s. Now I'm not sure what approach I would use to teach a child actual coding (vs. moving stupid blocks around on a screen that PR flaks call "coding").

      To answer the OP question (and agree with the GP of this reply), it was absolutely all self-taught, as were the additional languages I've picked up over the last 40 years.

      Started with the TRS-80 in Radio Shack. I checked out "Basic BASIC" from the library and took it over to the mall every day after school, typing in all the exercises.

      When they threw me out of Radio Shack, I moved over to Foley's where they had the shiny new Commodore PET on display. After I finished Basic BASIC, I moved on to Dave Ahl's BASIC Computer Games. I got to know the evening shift salesgeek pretty well and he let me spend all my time hogging the display computer. He would sometimes show me some cool hack and challenge me to figure out how he did it, such as POKEing directly into video memory for fast animation. I eventually bought my first computer* from that guy.

      All of which is to say: Suck it, Radio Shack.

      *The PET. Although Foley's also had an Altair on display, it was more expensive and all the blinkenlights frightened and confused me.

    6. Re:The usual way by JacobA.Munoz · · Score: 1

      +1 for GW Basic.. My 286 came with a huge manual of every basic command with example code. Same with Dos Batch files. MSDOS 4.x originally. The machine was from Northgate Computer Systems. 40MB hd, 1MB ram, 25MHz AMD cpu ... I recently found a floppy that might still have some of my old .bas files, but I'm doubting if the disc can be read. I also have a stack of floppies with some ancient MSDOS backup files I don't think I can recover (backup.001, control.001 etc..) I might just try to rewrite the ones I can remember. Had a virus problem in 1998 that wiped out a lot of stuff. ah, memories.. Then it was Qbasic, Visual Basic for DOS, VB for Windows, PowerBasic, HTML, VB.Net, C#, JavaScript, CSS, SQL, Java, .Net ASPX, PHP, bash, Python, c/c++, google go

    7. Re:The usual way by antdude · · Score: 1

      BASIC and LOGO (does that count?) during my elementary school days. And then, Pascal, C, C++, and ASM in college. And then a little ASP, ColdFusion, etc. I didn't like coding. I prefer breaking stuff. ;)

      --
      Ant(Dude) @ Quality Foraged Links (AQFL.net) & The Ant Farm (antfarm.ma.cx / antfarm.home.dhs.org).
    8. Re:The usual way by 93+Escort+Wagon · · Score: 1

      That is, the usual way for 1980s computer geeks. Self-taught BASIC on an Apple II using a few books on Applesoft and Integer BASIC.

      I was already working at that point. I'd studied engineering and physics, but having learned to write Basic on a PDP 11/40, then later Fortran on an 11/70 - whenever I'd go out to do an internship, they'd immediately decide I was going to be their programmer. Back then, even electrical engineers didn't do much with those new-tangled computers even smaller companies were starting to buy.

      Prior to that... In high school they were just starting to introduce microprocessors. I remember putting together simple assembly language routines, then trying to save them onto cassette tapes. Good times...

      --
      #DeleteChrome
    9. Re:The usual way by Solandri · · Score: 2

      Because back in the 1980s computers booted to the BASIC command line interpreter/REPL. Nowadays, there is, more or less, no such thing. Closest similar thing most non-geeks will get to is a browser console, and while that is reasonable debugging tool for pros, it's not a similarly friendly programming tool for beginners.

      Every copy of Windows has a command prompt which will let you write and execute batch files. Not that I'd recommend that as a way to learn programming, but most of the functionality is still there. Just not in a popular "language".

      I think the bigger impediment is that users expect everything to be in an easy-to-use GUI nowadays, and aren't all that interested in writing code which will only run in a command prompt. (That and the switch from procedural to event driven programming drove everything up an abstraction level.)

    10. Re:The usual way by David_Hart · · Score: 1

      That is, the usual way for 1980s computer geeks. Self-taught BASIC on an Apple II using a few books on Applesoft and Integer BASIC. Later Pascal also on the Apple II with a few books including Jensen and Wirth's PASCAL User Manual and Report. Learned C (K&R, mind you, none of that prototype crap) on a Mac XL with the old Megamax compiler. Picked up 6502 assembler out of necessity in there, also 68000 and 6809.

      My introduction to BASIC was with a Commodore PET and a book with the code for a number of programs. My first few programs were games like Hangman and Lunar Lander. I learned other computer languages when I took Computer Science, including Assembler, APL, COBOL, C, FORTRAN, and Modula-2. I've since picked up Visual Basic, VBScript, Java, JavaScript, and Perl.

      I'm a Network engineer so I rarely do any coding, but every so often I need to spin up a script.

    11. Re:The usual way by Mashiki · · Score: 1

      BASIC on a Vic20 myself. I learned by looking at the stuff that was published in monthly commodore magazines then changing stuff to see what happened, then branching out to writing my own programs. COBOL and FORTRAN I learned at home out of my dad's old university textbooks from the 70's, since the courses he took required both languages. These days? I just learn what I need to learn to keep going, sometimes I'll just look at some new up and coming language and learn it just for something to do.

      I'd always wished as a kid I could have looked at the stuff on the old commodore game cartridges though to see if people had put their own secrets in them.

      --
      Om, nomnomnom...
    12. Re:The usual way by Anonymous Coward · · Score: 0

      Speaking of tools, the nice thing about UNIX tools is they never go out of fashion. Get a good handle in some commands like grep, sed, awk, bash scripting, sort, uniq, cut, etc. and you can accomplish quite a lot of automation and data processing, at least.

    13. Re:The usual way by Anonymous Coward · · Score: 2, Insightful

      Because at the end of the day, no matter how you learn, your practical knowledge (meaning libraries and frameworks and tools, if not entire languages) will be functionally obsolete within two years

      Sounds like you're investing in the wrong platforms. Java has been around for 20+ years. The Microsoft .NET platform has been around for 15+ years. Very large parts of both class libraries have been stable for over a decade now. A platform, library or programming language that's so poorly conceived that it's obsolete in two years doesn't sound like it's worth learning. Frankly, that sucks and I don't program on platforms that suck. Java or .NET might not be sexy Silicon Valley flavor of the month hot language or platform, but they pay the bills and keep getting used to get real work done year after year. Meanwhile Silicon Valley is basically still in the advertising business, with few exceptions. Save the world? Hardly. I don't either of course, but neither do I claim too. My advice to any new programmers coming along, especially young Americans, is to find an un-sexy niche platform that's integrated heavily into the economy and that nobody else wants to learn, like embedded industrial control systems or something like that. There's probably a Java interface to it too. Playing catch up with whatever flash in the pan technology that the hip startup of the month is using is a sucker's game.

    14. Re:The usual way by NormalVisual · · Score: 1

      That is, the usual way for 1980s computer geeks. Self-taught BASIC on an Apple II using a few books on Applesoft and Integer BASIC. Later Pascal also on the Apple II with a few books including Jensen and Wirth's PASCAL User Manual and Report. Learned C (K&R, mind you, none of that prototype crap) on a Mac XL with the old Megamax compiler. Picked up 6502 assembler out of necessity in there, also 68000 and 6809.

      This was pretty similar to my path. I started with Applesoft on the Apple IIs (the sweet black Bell & Howell ones) at the local learning center on the base my dad was stationed at, and a few months after that the director of the center called me over and said that he thought I needed to be learning more complex stuff, and gave me a book on 6502 assembly programming, which I just devoured. I skipped the Pascal route because the UCSD package that they had was always checked out by someone else when I got there. After we moved, my mom was a manager at a local ComputerLand (back when such a place existed) and I pretty much had the run of the place - I got a copy of "Inside Macintosh" and picked up 68K assembler playing with that, and also got to play with an AT&T 7300, which was my first exposure to Unix. It wasn't until after I graduated from high school that I got my own first computer - an Amiga. Stayed with the 68K assembler, and learned C as well. By the year after high school I was doing occasional contract work. My first real professional job didn't come until a couple of years later when I went to work for a contractor writing software for the Navy. Lots of C/C++ during my term there, and the occasional fun stuff like writing TSRs under DOS.

      I got into programming because it was something that interested me, and as a result I acquired a fairly substantial library and picked up quite a lot that one would expect to learn in college. I know I'm not the best coder out there, but I also know (and my employment record would tend to corroborate) that I'm reasonably competent and I don't seem to have any difficulty getting stuff done with the MS's and PhDs where I work. I'd like to go to college and get a CS degree for my own enlightenment, but at this point in my life I don't have the time and it wouldn't make much sense financially.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    15. Re:The usual way by NormalVisual · · Score: 1

      The machine was from Northgate Computer Systems.

      It's been forever since I saw that name. Built like tanks, and they had possibly the best keyboard ever made.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    16. Re:The usual way by Stormy+Dragon · · Score: 1

      One of the most important things that happened to me my entire life was the day in the early 80s someone gave me a copy of this book:

      http://www.amazon.com/BASIC-Co...

    17. Re:The usual way by Anonymous Coward · · Score: 0

      Yup, pretty much this way. Originally started out with FORTRAN on VMS in third grade because my parents used it at work, and then found some books on BASIC and Pascal and made it to C/C++ by middle school.

    18. Re:The usual way by Anonymous Coward · · Score: 0

      Same here. Started out with GW-BASIC, a bit of assembler, later QBASIC, Visual Basic, C++, Java, Python and Scala, as well as a dozen or so domain-specific and otherwise specialised languages. But I don't think this is the best way, as it has two major drawbacks.
      Firstly, learning during your first college programming class that all the simple algorithms you figured out yourself have names like X's Algorithm, for various vain X's whom we are supposed to respect for those algorithms and who incidentally usually are terrible human beings, really sours your character.
      Secondly, through sheer experience you get too good at it, someone who started coding in college, like most, simply cannot hope to catch up. Is that a drawback? Yes. Most programmers you'll have to work with will be those. If you can no longer imagine what it was like to be so bad at it, because it was so long ago and you were a little kid back then, it gets really hard to work together. And unless you can successfully pretend to be a lot less competent than you are, everybody around you is just itching to cut you down a notch, because programmers on the whole aren't very nice people.
      So my advice is: don't learn it like this. If you see someone picking it up like this, help him like you'd help a friend who got addicted to cocaine. If you have to learn it at all, start in college, and only pick up what you need, it'll be a lot easier for you in business life.

    19. Re:The usual way by Anonymous Coward · · Score: 0

      Pretty much this, though different 8-bitter. Learnt basic inside and out, then got into assembly via m/l subroutines in basic. By the time I was done I could program basic and assembler, wire up logic (dead bug prototyping) and was interfacing that computer with all sorts of things.

      Then I got to uni and the first language they taught us was Miranda. Seriously. I understand their reasoning - trying to break people like me of bad habits - but it felt like trying to program with both hands tied behind your back and someone beating you about the head with a wet sock. I seriously considered quitting after that first 12 months.

    20. Re:The usual way by sg_oneill · · Score: 1

      Even Python has been a pretty good investment of time. Learned it in the 1990s when it was new , and those skills are STILL useful to me. In fact possibly even more so then ever.

      --
      Excuse the Unicode crap in my posts. That's an apostrophe, and slashdot is busted.
    21. Re:The usual way by angel'o'sphere · · Score: 1

      What editor would you use in command.com to write a batch file? I'm not aware of any.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    22. Re:The usual way by AmiMoJo · · Score: 1

      Maybe robots are the answer. My first programming experience was at age 3 with a Bigtrak robot. It was basically an eight wheeled buggy thing, like something out of Thunderbirds, with a keyboard on top. You type in simply instructions, like "forward 1m, turn left, reverse 2m", press Start and off it goes. My nursery (kindergarten in the US I think) had one.

      The immediate practical results were quite compelling. Later at about age 9 we got a PC, and it came with a graphical BASIC for the GEM windowing system. There were a few examples to modify and a thick manual. I also got some books from the local library, which were for 8 bit machines like the C64, Dragon 32 and Spectrum, but BASIC is fairly portable even for a 9 year old.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    23. Re:The usual way by Anonymous Coward · · Score: 0

      Or live somewhere/join a company that has a less horrible environment.
      Where being the guy that is there to help out and fix things others struggle with means that a lot of the time you have the freedom to work on whatever you want as long as it has some value and still get paid well (ok, depends on how much money you want/need).
      Also I'm not sure your causation is correct. I didn't do any mathematics in my freetime and still was better at it than most others at university. I find it highly likely that for those who learned to program as kids did it because they had a natural aptitude for it, not the other way round (mostly at least).

    24. Re: The usual way by Anonymous Coward · · Score: 0

      I got my first computers at age 15. Both were quite old at the time, and almost free. One was an IBM PC XT with 8088 CPU, the other an Olivetti M10 (a prettified Tandy model 100). Both spoke BASIC, and neither did anything interesting unless I made them to. The M10 also had a comprehensive BASIC manual.
      From there I went to QBasic, Pascal and Delphi. I haven't coded anything much in 10 years now, mostly just batch files, but it would be fun to do. I'm thinking about rewriting an old game of mine for mobile.

    25. Re:The usual way by Anonymous Coward · · Score: 0

      Beginners don't need advanced tools. There are TONS of entry level tools, and as far as it being 'hard to setup' BOLSH, beginner tools are easy peasy to setup. By the time you are ready for more advanced stuff you have learned what you need to do setup for such things.

      I started with dirt-cheap computers bought by myself as an 18 year old - and I self-taught entirely because I was too poor to afford school (and my parents made _just_ too much for me to get a loan or grant).

    26. Re:The usual way by Anonymous Coward · · Score: 0

      Because back in the 1980s computers booted to the BASIC command line interpreter/REPL. Nowadays, there is, more or less, no such thing. Closest similar thing most non-geeks will get to is a browser console, and while that is reasonable debugging tool for pros, it's not a similarly friendly programming tool for beginners.

      In fact, you practically need to be an experienced developer even to get a modern IDE up and running. Eclipse? Xcode? Not for the faint-hearted.

      Not sure about hard statistics, but I'd say it's a safe bet most new developers these days need to be shown how to get going. Beyond that, they'll naturally self-teach and bootstrap themselves, or fail out early. Because at the end of the day, no matter how you learn, your practical knowledge (meaning libraries and frameworks and tools, if not entire languages) will be functionally obsolete within two years, formal CS concepts and emacs/vim godliness notwithstanding.

      What in the world are you talking about? It is much easier to get started now. Why would one need an IDE? Get Linux installed and type 'gcc program.c'. Enjoy. The rest will come as sophistication of the programmer improves. C has been around for decades, and the general knowledge of how things are put together stays with you no matter what the current fad is. Just because some teenager decided to 'improve' a language, we are throwing away megabytes of existing good code to switch to some bullshit new shiny language like Swift or some other abomination.

    27. Re:The usual way by tomxor · · Score: 1

      Because back in the 1980s computers booted to the BASIC command line interpreter/REPL. Nowadays, there is, more or less, no such thing. Closest similar thing most non-geeks will get to is a browser console, and while that is reasonable debugging tool for pros, it's not a similarly friendly programming tool for beginners.

      This does illustrate the difference in exposure and access the average computer user gets today. Perhaps a way to restore that exposure and access is to give the modern equivalent of a shell (for every computer user) programming capability, that would either be a search engine or omnibox type area.

      Just to be clear, i'm not talking about dumping a javascript console in a search bar, but choosing a language that is very simple to use and makes sense in the context of a search engine so people might actually be tempted to use it.

    28. Re:The usual way by arth1 · · Score: 1

      What editor would you use in command.com to write a batch file? I'm not aware of any.

      EDLIN

      HTH, HAND

    29. Re:The usual way by Ol+Olsoc · · Score: 1

      Not sure about hard statistics, but I'd say it's a safe bet most new developers these days need to be shown how to get going. Beyond that, they'll naturally self-teach and bootstrap themselves, or fail out early.

      There is something to that. To use a non-coding example, I've been a Photoshop user from early days. So every time they would bring out a new version, it was no problem at all to hit the ground running with it.

      For people who were just introduced to a later version? Yikes! My years long immersion was gradual and taught me the ground concepts. The noob was thrown in at the deep end.

      Same goes for programming.

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    30. Re:The usual way by Terje+Mathisen · · Score: 1

      That was indeed the usual way:

      Personally I had written algorithms and used them on paper for several years when I started university in 1977 (an MSEE program) and got a compulsory PROGRAMMING 101 class. By the time week two or three came around and we got the second programming assignment I had a wonderful lightbulb moment: "Yes! I can do this! I can calculate anything now"

      In 1982 I got a couple of IBM compatible PCs and had to start writing asm code almost at once, because there were no hardware drivers at all, but the result was that I understood everything that happened in those machines, in particular how to make really small & efficient code so that a 4.77 MHz machine with a 4-clock (byte) bus cycle could actually d something useful.

      The years since then has been spent filling in all the gaps, i.e. all the stuff that I didn't realize I didn't know.

      In the meantime I've been lucky enough to be involved with lots of interesting stuff, like helping to optimize the world's first SW DVD player, the core assembly code for Quake, one of the AES candidates, Intel's reference h.264/CABAC decoder and many more. I've also been part of the NTP Hackers team for 15-20 years now, and I'm also writing FP emulation code for the Mill cpu (millcomputing.com, a cpu with a belt instead of registers).

      Conclusion?

      I've learned to program by being intensely interested in it for almost 40 years now.

      Anyone who became a "programmer" simply because it seemed like an easy way to make a living is more likely to be a part of the problem instead of a part of the solution.

      Terje

      --
      "almost all programming can be viewed as an exercise in caching"
    31. Re:The usual way by i.r.id10t · · Score: 1

      Early 80s TRS-80 guy here, mine was at an after school activity place that was half arts-n-crafts and have programming on TRS-80s, and you had to alternate. Then Turbo Pascal on my own on a 286, and COBOL and FORTRAN via green-screen terminals to a mainframe at UF while in high school. Then more Turbo Pascal until I got around to working on an AS degree, and it was VB, C, C++, and Java. Then learned some basic Perl and then PHP for stuff at work, and now that I'm working on another degree re-learning C/C++/Java to do some Android and iOS classes.

      As for teaching kids today? I taught 2 groups of 10-14 year olds in a two week period some basics during a "college for kids" day camp. Hour and a half per day for 8 days. Some of them (4 or 5 out of the 34) really wanted to learn to code, most others thought it would be all about games, some wanted the class in the coldest room after outside activities and didn't care what was being taught. Thank god for CITs...

      Day 1- Define programming, what kind of languages are there (interpreted vs compiled, proceedural vs object oriented). Show an application like a browser and talk about the events that had to be dealt with and what kind of decisions had to be made. Play a game for the last 30 minutes, have 'em pay attention to what kind of things would have to be dealt with...

      Day 2- psuedo code on a white board, introduce variables, arrays, logic, looping, functions, and objects. Play game again last 20-30 minutes, have them pick one or two objects and note what properties and methods it may have

      Day 3- "Hello World" time. We used PHP (since they were also doing a class on HTML/CSS and creating web pages), and produced a page that said "Hello World, my name is Bob and I was born on a Thursday", using the date() function to print what day of the week they were actually born on. Added some HTML stuff - links, change font sizes, insert images, etc all what they've been doing in the HTML/CSS class. Then more "free time" for games, or to keep exploring with PHP...

      Day 4- User input with a form and the $_POST array. This time they were able to prompt for someone's name and DOB and say "Hello you are $name and you were born on a $day_of_week". Talk about validating user input, and how it can lead to hacks, crashes, errors, etc. Show Bobby Tables xkcd. More "free time".

      Day 5- Introduce the concepts of connecting to a database as just another function set. Gave them an include file that would provide a function that would execute a query and return the record set as an array. Showed them how record sets could be dealt with, and then game|code time.

      Day 6- 30 minutes of cool stuff PHP can do like image manipulation, generating PDFs, etc then game|code

      Day 7 & 8- free time to game or code. Game players were all playing same game and it had a CTF mode so I made 'em setup teams and play CTF.

      In all, the 4-5 kids that wanted to learn to code or learn about learning to code got a taste, and they all asked for book recommendations. The kids that wanted the gaming or air conditioning got it, and hopefully a little of the concepts from days 1 and 2 sunk in.

      I'd even do it again, if I have the time to spare...

      --
      Don't blame me, I voted for Kodos
    32. Re:The usual way by Hognoxious · · Score: 1

      PR flaks

      Single 20mm, quad 20mm or (gulp) the dreaded 88?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    33. Re:The usual way by Anonymous Coward · · Score: 0

      I learned to 'code' in Pascal from Jensen and Wirth as a part pf CS classes taching how to implement and analyse algorithms.

    34. Re:The usual way by Anonymous Coward · · Score: 0

      "Or live somewhere/join a company that has a less horrible environment." Agreed, but that requires luck. Which is wonderful if it works out for you, but as I look back on life I feel I've accidentally (or sometimes because I was egged on by parents and family) embarked upon too many paths that required luck. Planning life in general is difficult to impossible, but if you can make a decision, I think it's better to plan for what happens in the mean.
      And maybe talent matters, but most people haven't got exceptional talent in anything and a lot of work / exercise / learning is generally necessary to allow people to exploit their innate aptitudes. I don't feel like I was born with exceptional skill in programming (although maybe I did have some relevant aptitude; I couldn't say), it's just that it seems to me like I've seen every programming problem I come across before in a different guise. And that other people do the stupid things they do because they don't realise the implications, which they would realise if they had more experience.

    35. Re:The usual way by reanjr · · Score: 1

      To my knowledge, Visual Studio is straight-forward to get up and running. I haven't used in years, though, maybe it's become a mess?

      PHPStorm is the first IDE outside of Visual Studio I've ever used that just started doing its job immediately upon "install" (which was extracting a tarball).

      But yeah, Eclipse and XCode are a needless pain-in-the-ass (Eclipse, especially).

    36. Re:The usual way by Anonymous Coward · · Score: 0

      Before all the distros started adding graphical login managers and X windows setups, Linux would boot, you would login, and on >90% of distros you now looking at a bash shell... which has essentially the same functionality as the BASIC interpreter you refer to.

      It's Microsoft and Apple that are making it annoyingly inobvious that one can actually type instructions instead of clicking candy-colored icons. ...and since dimwit users took the attitude that graphics == functionality, Linux distros started adding primarily graphical interfaces as OOB defaults in order to "keep up" with operating systems they were years ahead of.

    37. Re:The usual way by narcc · · Score: 1

      To add to arth1's EDLIN, I'll also add edit (which came later) and copy (ex. copy con myfile.bat) Old stuff, likely a bit before your time.

    38. Re:The usual way by narcc · · Score: 1

      I don't see how, given how frequently Guido breaks compatibility.

    39. Re:The usual way by angel'o'sphere · · Score: 1

      Not really "before my time". I just never needed to use DOS except for typing commands in command.com as I typed files obviously from Windows.

      That copy example is a neat trick though ... thanx.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    40. Re:The usual way by Anonymous Coward · · Score: 0

      I learned it at the age of 17 from a 12-year-old in a department store where they exhibited a Commodore VC-20.

      It took my professors at the university a complete semester to cure me from writing spaghetti code...

    41. Re:The usual way by Frederic54 · · Score: 1

      About the same, started BASIC on a Sinclair ZX81 at 11yo, then on an Amstrad CPC6128, then Z80 assembly, and as the CPC was using CPM I learnt TurboPascal and dBaseII too, then I bought a PC in 1990 and started C.

      --
      "Science will win because it works." - Stephen Hawking
    42. Re:The usual way by Anonymous Coward · · Score: 0

      If you are on a Windows machine...

      download visual studio express, it is free... https://www.visualstudio.com/en-us/products/visual-studio-express-vs.aspx

      Install the IDE, not difficult. Open the IDE. On the "Start Page" click "New Project" in the left most pane. In the pop up window select "Visual Basic", Console Application. Type in "HelloWorld" for the name.

      When the "Module1.vb" page opens up type the following...

      Module Module1

              Sub Main()
                      Console.WriteLine("Hello World")

              End Sub

      End Module

      About as easy as the 1980's booted basic "Hello World" program. Press to run. The rest of the 1980's GWBASIC programs you can find in a book should be easy to convert to VB with a little help from stackoverflow.com

      Nathan

    43. Re:The usual way by Anonymous Coward · · Score: 0

      The "usual way" for a 1980's kid as well, but I mostly copied BASIC programs from other books and magazines then learned to modify them to my specific needs. Working in IT I had only used shell and batch scripts through the years, but just recently I picked up "Automate the Boring Stuff with Python" and started learning Python to automate most of my tasks.

    44. Re:The usual way by Anonymous Coward · · Score: 0

      Have them use the free Visual Studio to write C# console apps to start off with.

    45. Re:The usual way by gzuckier · · Score: 1

      Because back in the 1980s computers booted to the BASIC command line interpreter/REPL. Nowadays, there is, more or less, no such thing. Closest similar thing most non-geeks will get to is a browser console, and while that is reasonable debugging tool for pros, it's not a similarly friendly programming tool for beginners.

      Every copy of Windows has a command prompt which will let you write and execute batch files. Not that I'd recommend that as a way to learn programming, but most of the functionality is still there. Just not in a popular "language". I think the bigger impediment is that users expect everything to be in an easy-to-use GUI nowadays, and aren't all that interested in writing code which will only run in a command prompt. (That and the switch from procedural to event driven programming drove everything up an abstraction level.)

      My secret programming language in the 80s; there was a shareware batch file compiler. Made .com files so I guess it wouldn't work any more.

      --
      Star Trek transporters are just 3d printers.
    46. Re:The usual way by Anonymous Coward · · Score: 0

      If you didn't have to use DOS because you had Windows, it was before your time. ;)

    47. Re:The usual way by Anonymous Coward · · Score: 0

      > Learned C (K&R, mind you, none of that prototype crap)

      What's wrong with prototypes??

  6. 2 week FORTRAN short course at JC. Lied about age. by HornWumpus · · Score: 4, Interesting

    I was off and running. Self taught basic, 6502 and Z-80 assembler. Worked two summers to buy my first microcomputer.

    Learned a bunch translating various basic dialects. Typing games in from Creative Computing etc.

    Backfilled informal programming education with EE and CompE degrees.

    I can spot the potential future programmer among 10 year olds playing. The future programmer is working puzzles requiring thought.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  7. Star Trek by dwywit · · Score: 3, Informative

    I first saw code on an Apple II - the Star Trek game.

    I read an introduction to programming, and proceeded to modify the Star Trek game to not decrement the photon torpedo count whenever I fired one - ditto energy levels for shields and phasers. After a while I wrote a bouncing ball game, similar to pong.

    Some time after I left school I found myself as the sysop for an IBM System/36, and I would play around with the application software source code to see how it worked - not the actual source code, of course - I made a copy to play with. The IBM programmer's and reference manuals are quite comprehensive and from there I was able to take on the source code maintenance and development roles. It was mostly RPGII, with a little bit of BASIC. Then we moved to an AS400, RPGIII, RPG400, and SQL.

    --
    They sentenced me to twenty years of boredom
    1. Re:Star Trek by vivian · · Score: 1

      My first exposure to hexadicimal was hacking my Ultima ][ save file on an Apple //e to max my character's stats.
      I learned soon after that it's fun for about 30 minutes and after than you have basically ruined the game, so never did it again. That game also made me interested in programming, which is what made me end up learning applesoft basic and 6502 assembler, though at the age of 13 I never did get good enough at it to make much of a game. My physics knowledge was lacking and some of the things I learned while programming in basic also caused me an embarrassing moment in maths class when we started learning algebra - I thought you could assume all variables in a maths equation are defined as 0 unless stated otherwise, 'cause that's how it worked in basic...

  8. How did you learn how to code? by turkeydance · · Score: 0

    wanted to. didn't have to.

  9. Coding, or programming? by Todd+Knarr · · Score: 5, Insightful

    I learned to code first in classes in high school (BASIC, FORTRAN, COBOL, Pascal) and then by reading the relevant books or documentation (C, C++, Lisp, Icon, Java, C#, Perl, Python, Ruby, PHP, Javascript et. al.).

    The more interesting question is where developers first learned to program (a completely different skill from coding). IMO we don't need to teach children to code, we need to teach them to program. Which means first teaching them to approach problems logically and analytically, which is going to cause the loss of about 75% (my guesstimate) of the educational establishment when they can't deal with students who know how to analyze material, do independent research and call teachers on incorrect classroom material.

    1. Re:Coding, or programming? by twistedcubic · · Score: 1

      "Programming" was the commonly used phrase back then. I don't recall the term "coding" when I started in the 1980s.

    2. Re:Coding, or programming? by Anonymous Coward · · Score: 0

      Coding was what the keypunch operators did.

      There were Analysts at the top, Programmers in the middle, and Coders at the bottom.

    3. Re:Coding, or programming? by Anonymous Coward · · Score: 0

      At some point between 1980 and 2000 the term "programming" fell out of favor because it became associated with less prestigious and lower paying job titles than "software developer" or "software engineer". After all, ordinary people "program" their consumer devices, but "coding" sounds more mysterious. Finally, it's shorter and easier to say. Why use three syllables when two will do?

    4. Re:Coding, or programming? by Anonymous Coward · · Score: 0

      That's because 'coding' is a derogatory term. It's a way of referring to low level employees who don't get paid that much and are mostly doing cookie cutter work. See also: "code monkey". You can't be that smart if all you're doing is coding statements on a computer screen. The typical developer hierarchy goes 'coder' is less than 'programmer' is less than 'engineer' is less than 'architect' (etc.)

    5. Re:Coding, or programming? by Anonymous Coward · · Score: 0

      The more interesting question is where developers first learned to program (a completely different skill from coding). IMO we don't need to teach children to code, we need to teach them to program. Which means first teaching them to approach problems logically and analytically, which is going to cause the loss of about 75% (my guesstimate) of the educational establishment when they can't deal with students who know how to analyze material, do independent research and call teachers on incorrect classroom material.

      This all sounds much too formal. Kids want to explore and have fun. Just let them. Give them good toys and they will do so on their own terms. Encourage the things they express an interest in.

      My introduction to programming was at the Vic 20 display at the local department store. From there I just took whatever they gave me in school and made the most of it. To me though, the computer was always a tool: the means, not the end. We had a good high school introductory computer science class with an adequate teacher and a full class set of Apple IIGSs. Then in the 90s, in any post secondary science classes, the computer experience just came along with it.

    6. Re:Coding, or programming? by JoeCommodore · · Score: 1

      Started in high school on Commodore PETs
      Bonus - here's the book we learned with: https://archive.org/details/Ha...
      This was early on with micros in the classroom - so some of us got way past the teachers.

      Wasn't too long before I started picking my brothers brain for more answers and then got my mitts on a programmers reference guide ( https://archive.org/details/PE... ) and learned about pokes and peeks to change flags and registers. Poking at ML games looking to change something and and getting weird results.

      Here are some games I wrote while in HS (or bashed from other code as in Journey to the MCP and m-maze) in high school:

      http://www.mobygames.com/game/...
      http://www.mobygames.com/game/...
      http://www.mobygames.com/game/...
      http://www.mobygames.com/game/...
      http://www.mobygames.com/game/...

      After I got out of school and got a VIC-20 things got more exciting as I self taught doing ML and hand assembling 6502 code...

      --
      "Enjoy what you're doing! If it becomes drudgery, you're doing it wrong!" - Jim Butterfield
    7. Re:Coding, or programming? by sjames · · Score: 1

      It's a fairly slippery set of terms. What is now called a coder or code monkey used to be called a programmer or a junior programmer. What is now called a developer used to be called a programmer/analyst.

    8. Re:Coding, or programming? by HornWumpus · · Score: 1

      It's called 'code' for a reason. Have you ever tried to read a code monkeys 'code'? They all think the same way...they're all special...rules and conventions are for other people. Anything that unreadable is 'code'.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  10. Pragmatically by Anonymous Coward · · Score: 0

    Depends on age, and what the market does. I started first reading and typing games from big BASIC books, some semi-new but most were from a used bookstore. Early 90s was a great time. Beyond that, it was idle time and access to a computer that allowed me to first learn more about the culture of programming and then its job opportunities. Unlike most I chose not to pursue coding as an occupation because of the being in school when the dot com bubble burst, and observing the rise of globalization and its transposition of work that isn't physical to the cheapest places. I work in operations planning for industrial production now, which is similar and involves programming but is less susceptible to replacement. It is an effective cross between blue and white collar jobs.

  11. BASIC by Anonymous Coward · · Score: 0

    10 i had a TI-994a and it taught me BASIC
    20 i had a subscription to some magazine with source code that i had to type into my TI-994a
    30 goto 10

  12. first forays by Anonymous Coward · · Score: 0

    BASIC programs in the back of 3-2-1 Contact, my first foray into programming.

    I think it was COMPUTE! that had some fun/interesting stuff entered via DEBUG, too. Although I'm not sure there was adequate explanations for what those programs were really doing, nuts and bolts-wise.

  13. Learned the hard way. by Anonymous Coward · · Score: 0

    I learned the hard way. I read the TRS-80 programming manual and followed the directions. From there it was all downhill as I got the programming manual for my vic-20 and the 6502 processor assembly instructions. After that it was apple basic and more 6502 assembly on the apple-II. A course in high school on BASIC(which I knew more than the teacher) and PASCAL. Then it got really hairy when I went in the military and started reading the unix manuals we had available to us and teaching myself FORTRAN, C, and Ada. After that it was just a matter of reading reading reading. So, I guess, reading is the way I learned. We didn't have youtube back then so we had to read for ourselves.

  14. hungry by ebonum · · Score: 3, Informative

    In the 1990's if you were a fresh grad with 80K in student and credit card debt, USD200 to your name and not a soul on earth to help you, coding for 30K a year was a way to put food into your stomach. The offer looked even better with no gas money to get to the next interview. Doesn't matter if you've never written any code. Any fool with a solid IQ and a fire under his ass should be able to get good at coding pretty quick ( finding out about Scott Meyers, Erich Gamma, Fowler, Aho, et. al. early on helped. Need to buy all those guys a beer one day. They saved my ass. )

  15. High school elective by Anonymous Coward · · Score: 1

    I took a class in high school because I was interested in programming.

    Before that there were a few opportunities to get the basics in grade school. There were typically only a few computers in the school that all classes and grades took time sharing. One year, it was just the turtle program where they trick kids into programming by drawing shapes by giving a turtle commands. Another year we used BASIC to implement simple math problems.

    I don't understand what the problem is. Back then computers were rare and expensive. Opportunities with them were limited, but we were all exposed to some form of programming. Today even homeless people are given high powered cell phones. Schools have computer labs. Schools force kids to use TI (programmable) calculators for basic math. If a kid wants to learn how to program, it is all right there waiting for him.

    I keep seeing these people post "I just learned to code - what program should I write?" questions. If you can't think of anything to code up then you aren't a programmer - just not for you.

  16. How I learn't to code: by TechyImmigrant · · Score: 3, Informative

    Books!

    First: The Apple ][ Basic Manual.
    Second: Rodney Zaks, Programming the 6502
    Third: Jeffrey Stanton, Apple Graphics and Arcade Game Design

    38 years later my bookshelves are heaving.

    --
    I should use this sig to advertise my book ISBN-13 : 978-1501515132.
    1. Re:How I learn't to code: by imidan · · Score: 1

      My first was David A Lien, Learning BASIC for Tandy Computers

      It has a series of cartoon illustrations in which a dude argues with his witty computer, which appealed to me as a youth.

      Plus, copying programs out of magazines like BYTE and the like. I think I really learned how to program by debugging my transcription errors from magazines, then by figuring out how to alter the functionality of the programs that I'd entered.

  17. Old Guy by chipschap · · Score: 1

    I went to a summer program in 1966 (!) where I learned Fortran II and then IBM 1620 assembler. I think the computer had 2k of core memory or something. Those IBM 026 keypunch machines were really something.

    1. Re:Old Guy by Skewray · · Score: 1

      White Sands Missile Range donated a DEC System 10 to my school district. Learned assembly on that my senior year, then went on to IBM/360 assembly at the local college the same year. So I learned valuable skills that I never again used.

    2. Re:Old Guy by geezer+nerd · · Score: 1

      Everyone must have a different story, here's a bit of mine: In 1960 I went off to college, and had a chance to register for the first undergraduate course in programming that had ever been offered there. Computers were not a big part of everyday life then, and the idea of programming was very exotic and enticing to a young lad. I dove right in with only the fuzziest notion of what I was getting into. I was really really lucky to have Alan J Perlis (later the first recipient of the Turing Award) as my instructor for that class. He was simply amazing, and the most friendly teacher I had that freshman year.

      We started learning to program in assembly language, and did a fair number of puzzle-solving problems, many having to do with moving pieces on a chess board. That really makes one have to think about data structures and abstractions of physical reality without beating you up. Also, we had all-time access to the computer (IBM 650) and wound up spending a lot of evenings feeding cards into its maw. That class showed me what I wanted to do with my career. I wanted to make computers be able to do things that had not been done before.

      The undergraduate programming class went on for two semesters. After that everything I learned was self-taught, and sometimes quite a struggle as techniques and technologies continued to evolve.

      In those days, computer science and programming were really new, and had not found their place in academia quite yet. I was mostly advised to continue studing a more traditional subject, though I really wanted to pursue programming. I finished my student career with a PhD in theoretical chemistry, but it was really a sneaky way to do more programming and play with computers.

      I am still of the opinion that coding should be learnt first from assembly language level, and then get progressively more abstract. When you are coding at the machine instruction level, you really have to learn what the machine can and cannot do, and I think that informs programming for the rest of your career.

    3. Re:Old Guy by Anonymous Coward · · Score: 0

      Got me beat by 10 years. I started with a "programming of EE's " class in 1976. We keypunched FORTRAN on worn out government surplus IBM 026's to run on a CDC Cyber 74.

    4. Re:Old Guy by chipschap · · Score: 1

      White Sands Missile Range donated a DEC System 10 to my school district. Learned assembly on that my senior year, then went on to IBM/360 assembly at the local college the same year. So I learned valuable skills that I never again used.

      Ah, but I think you did use those skills again, just not that specific variant of assembler. What you learned was how things work and how to make things work. Programming assembler is rigorous and difficult and requires precision, attention to detail, and patience. I am certain you carried those skills forward.

      For me, learning at the assembler level very early on built a great foundation for learning other things.

  18. Apple IIe + VIC 20 by PmanAce · · Score: 2

    Like another poster, self-taught BASIC on an Apple IIe and BASIC on a VIC20 saving on tape.

    --
    Tired of my customary (Score:1)
    1. Re:Apple IIe + VIC 20 by Anonymous Coward · · Score: 0

      Exactly my experience - Apple II plus in school (then the E and the C). Then the Vic 20 at home.

      I had a science teacher that went back to school when he was close to 60 to learn to code. From that he taught us kids in a CS class of some sort in the 80s.

    2. Re: Apple IIe + VIC 20 by Exanter · · Score: 0

      this. EXACTLY this.

  19. The Hard Way, Dogonit by Anonymous Coward · · Score: 0

    "Sam's Teach Yourself C in 21 Days" (By day 21 they literally mean all day)

    Later went to college and took into programming with Python and realized I had been doing it the hard way. I still think C is a great way to start. While what you can do may be limited, you come out with an actual understanding of what is going on behind the scenes and better appreciate the features of modern languages. I would start students with assembly that they hand assembled, but maybe I am a bit evil.

    I also don't see the need to force every kid through years of programming classes. Some students will naturally gravitate to it. They should have an opportunity to discover their skills and expand on them, but there is no need to try to force everyone to learn to code. How much software are we really going to need such that we think we need to turn every last american into a developer? By my perusal of the app stores I conclude we have more than enough developers already.

  20. Three things by Anonymous Coward · · Score: 0

    A goal, stubbornness, and Google.

  21. Apps! by Anonymous Coward · · Score: 0

    I learned how to app apps by using apps that app other apps! Only LUDDITES write code!

    Apps!

  22. Old-Fashioned Way by sk999 · · Score: 1

    I learned it by taking a class. Machine, Assembly, high-level. The arguments were all about which language to learn. Punched cards - the best way to enter code - no upper/lower case, so shift keys put numbers and special symbols onto regular letters. Much faster than stupid keyboards of today.

    1. Re:Old-Fashioned Way by Anonymous Coward · · Score: 0

      Another fun way was through the maintenance panel on some of the older military computers. Set the address switches for the address you want to set, set the data switches to what you want to put in that address, and hit the "WRITE" switch. Repeat as needed. You learn to check your work beforehand really quickly.

  23. Started with the C64, of course by damn_registrars · · Score: 1

    The most accessible BASIC interpreter around (back then). I learned how to type on it, as well as how to code. Sure, "30 GOTO 10" isn't the most profound statement but it got my interest going.

    --
    Damn_registrars has no butt-hole. Damn_registrars has no use for a butt-hole.
    1. Re:Started with the C64, of course by LesFerg · · Score: 1

      Yep, I picked my way around the C64 manual, learning new commands one by one and putting them to use.
      After that I played around with assembly a little as well, but I never had access to any good educational material for the C64 in that area.
      Then I did a year of training which included COBOL and Pascal, but never used either of those for work, tho I did tinker with Turbo Pascal for a while at home.

      --
      If I had a DeLorean... I would probably only drive it from time to time.
  24. Curiosity by pontoffel · · Score: 2

    One day when I was 10 or 11, I was super bored and aimlessly looking through all of the folders on my computer when suddenly, I wondered how the files on it were made. After some research, I went down to the book store with my dad and ended up getting a copy of C++ for Dummies, which I worked halfway through before just doing whatever I wanted.

  25. On an ALWAC IIIE by FredK · · Score: 5, Interesting

    Computer class in school, spring of 1959. Coded in Hex, 512 bytes of memory (recirculating drum), 32K mass storage that was so big one didn't know what to do with it. Solved differential equations, linear systems with rational coefficients, and computed root locus diagrams. When somebody came along to add an assembler I didn't see the point, as it wouldn't even let you use instructions as data, and made it more difficult to plan jumps to account for the rotation of the drum. If you used floating point you lost 128 bytes of the memory. It was a very different world.

    1. Re:On an ALWAC IIIE by Guy+Harris · · Score: 4, Informative

      For those curious about the machine, here's the manual.

    2. Re:On an ALWAC IIIE by Anonymous Coward · · Score: 0

      Hmm, I touched one for a few days, in 1966, before running off to graduate school. What I remember about the machine was that it had 4K of drum memory, divided into 512 byte chunks. You could access only 1K at a time, but it could be any combination, any order, of four of the 512 byte chunks.

      Didn't like graduate school, came home and went to work at the same place my Dad did. Went to class at the company for seven weeks, program design, 360 assembler, COBOL. The eighth week was FORTRAN for the engineer types. Programmed a 360/50 with 128K of memory and eight 27MB disk drives. They gave you nine, but you could only access eight.

      Learned to code by looking at a lot of really bad code. Found some good programs but not very many. First boss and mentor was a second generation programmer, his father had been programming in the early 50's. We had fun trying to produce cost analysis reports where the totals would be $XXX,XXX,XXX,XXX.XXXX.

    3. Re:On an ALWAC IIIE by sconeu · · Score: 1

      You win.

      Computer class in school, summer '74. Vintage 1950 North American Recomp III (owned by the teacher).

      Coded in octal, 4K 40 bit words of memory, divided into 8K 20-bit half words.

      --
      General Relativity: Space-time tells matter where to go; Matter tells space-time what shape to be.
    4. Re:On an ALWAC IIIE by russryan · · Score: 1

      Yours probably gets "first program" awards. My first was 1967 on an IBM 1401. Submit your FORTRAN card deck and come back in a few hours to see if it actually compiled. The good part is a life time habit of "desk checking" -- not for compile errors any more, but for logic errors. After all these years the code I check in tends to work right.

    5. Re:On an ALWAC IIIE by NormalVisual · · Score: 1

      Obviously the tools are a lot better now, but there are plenty of embedded environments with that kind of resource pressure. "Okay, how do I make this all fit into 128 bytes?!"

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    6. Re:On an ALWAC IIIE by Fnord666 · · Score: 1

      Yours probably gets "first program" awards. My first was 1967 on an IBM 1401. Submit your FORTRAN card deck and come back in a few hours to see if it actually compiled. The good part is a life time habit of "desk checking" -- not for compile errors any more, but for logic errors. After all these years the code I check in tends to work right.

      I recall the "good old days" when everything was batch. When submitting your program and getting the results required two trips to the computing center and were spaced at least 4 hours apart you desk checked the hell out of everything. That habit has never faded for me either.

      --
      'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
    7. Re:On an ALWAC IIIE by Anonymous Coward · · Score: 0

      Where did you go to school? I am self taught, because the schools did not have computer science in the 60's where I went to school (I majored in math). Actually, I should not say self taught, as soon as I saw Fortran, I understood and wrote it, to solve differential equations, which is what Fortran does easily. But was not sure I wanted to be a programmer because I did not know what they did and was afraid that mean that I would be keypunching, which isa terrible way to enter code. After staying home with babies until they were in preschool, I started working part time in accounting. Fortunately for me they got a computer after a year or two and I was the only one who knew anything about computers so I became the computer person. This computer had a normal keyboard, programs and data were stored on tape, no big box of cards which was disaster if they were dropped so they were out of order or in some way damaged (no stapling, folding, etc.) and I could correct typos without starting all over. This computer had assembly code, I saw the code, understood and wrote it and the programs worked perfect, so then I applied for a full time assembly language programming job and continued coding ever after. Several different assembly languages, Pascal, C, C++, various Unix shell scripting languages such as Bourne C shell. I bought a little Attari home computer, 64 K, in the early 80's that my children learned on.

    8. Re:On an ALWAC IIIE by missneht · · Score: 1

      Where did you go to school? I am self taught, because the schools did not have computer science in the 60's where I went to school (I majored in math). Actually, I should not say self taught, as soon as I saw Fortran, I understood and wrote it, to solve differential equations, which is what Fortran does easily. But was not sure I wanted to be a programmer because I did not know what they did and was afraid that mean that I would be keypunching, which isa terrible way to enter code. After staying home with babies until they were in preschool, I started working part time in accounting. Fortunately for me they got a computer after a year or two and I was the only one who knew anything about computers so I became the computer person. This computer had a normal keyboard, programs and data were stored on tape, no big box of cards which was disaster if they were dropped so they were out of order or in some way damaged (no stapling, folding, etc.) and I could correct typos without starting all over. This computer had assembly code, I saw the code, understood and wrote it and the programs worked perfect, so then I applied for a full time assembly language programming job and continued coding ever after. Several different assembly languages, Pascal, C, C++, various Unix shell scripting languages such as Bourne C shell. I bought a little Attari home computer, 64 K, in the early 80's that my children learned on. (Re-posted with my login.)

    9. Re:On an ALWAC IIIE by Anonymous Coward · · Score: 0

      Went to school at Oregon State University.

  26. Timex and Commodore by Anonymous Coward · · Score: 0

    Timex Sinclair 1000 followed by a Commodore 64. Both had built-in BASIC and shipped with an adequate manual. I also had the C64 "bible" Programmer's Reference Guide and a subscription to Compute's Gazette and the odd issue of Transactor. I wasted several months of summer vacation sweating over my c64. That would have been Jr. High.

  27. At Radio Shack by plstubblefield · · Score: 1

    In the late-1970's, a junior high friend and I would walk down the street after school and learn to program the brand new TRS-80 at the local Radio Shack. The manager was initially suspicious that we were trying to shoplift (!), but quickly realized that we really were interested in the computer. We learned enough BASIC to program some simple but eye-catching visual effects. I think the manager allowed us to spend so much time monopolizing the TRS-80 display because other customers probably thought, "Hey, if those kids can do this, then I can too!" :)

  28. My Dad had a programming book by Anonymous Coward · · Score: 0

    Saw that my dad had a copy of Teach Yourself C in 24 Hours and went through it.

  29. PDP-8 Handbook by Anonymous Coward · · Score: 0

    Self taught, same for FORTRAN, BASIC, PDP-10 Macro assembler before I was able to take my first class. BTW, Per Brinch Hansen couldn't program his way out of a paper bag, that's what he had students for. I think his wife wrote his books.

  30. Learned mostly on the job. by jcr · · Score: 2

    Got started in sixth grade by typing in BASIC games from David Ahl's book, taught myself Pascal, Fortran, and FORTH from books, taught myself 6502 assembly from Adam Osborne's books, got a job writing in TAL (Tandem's proprietary language, very similar to Pascal), then got a different job working in C, where I had the good fortune to be in an office between two expert C programmers (one of whom later sat on the ANSI committee that standardized the language). Got better at it by working with the smartest people I could find.

    -jcr

    --
    The only title of honor that a tyrant can grant is "Enemy of the State."
    1. Re:Learned mostly on the job. by Anonymous Coward · · Score: 0

      Can you tell us more about your storied career? Unlike most here at Slashdot, you're a true industry veteran from what I understand. I don't know if this is true, but I've heard that you were involved with NeXT. Regardless, you've clearly worked with some very talented people during your many years in the industry. Can you tell us more about the companies you've worked at, and the projects you've worked on? Can you tell us more about the people you've worked with? Don't hold back details! We want to know what we can learn from you. If you've learned from the best, then there's a lot that the rest of us could learn from you.

    2. Re:Learned mostly on the job. by jcr · · Score: 1

      "Storied career"? Are you serious?

      There are a lot of far better coders on /. than me. I'm right in the middle of the bell curve.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    3. Re:Learned mostly on the job. by NormalVisual · · Score: 1

      Same here. They hire me when mediocrity is just too damned good.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
  31. turtle by Anonymous Coward · · Score: 0

    started hacking in 4th grade 1998 computer typing class.

  32. Introduction to computing CS 201 by 140Mandak262Jamuna · · Score: 1

    Prof Mahabala, Dept of Comp Sci, IIT Madras, IBM 370/155, punch cards, FORTRAN

    --
    sed -e 's/Chuck Norris/Rajnikant/g' joke > fact
  33. Electives by Gim+Tom · · Score: 1

    Took some courses as electives as part of a degree in engineering. Let's see.... Algol (which seems to be a direct antecedent of Pascal) followed by PDP8 assembler and then a packaged called GPSS II which was used for queuing simulations.

    After that I just picked up new languages as needed for my work including FORTRAN, Pascal, PERL, C, and far too much JCL just to get things to work on Big Iron. Still Going with a bit of Python and of course the newer web things that I don't think of as a general language (e.g. HTML, PHP, CSS, etc) but are useful for specific tasks. Got into Unix/Linux late in my career and I hope this learning curve never ends.

  34. Taught myself by Anonymous Coward · · Score: 1

    My dad bought some IBM computer in like 1986. I was 8 years old. Taught myself BASIC from following examples in my dad's books. Eventually took QuickBasic and TurboPascal at my local high school. Finished all computer classes when I was 14. Hacked our Novell Netware network when I was 15, nearly expelled. Learned barely anything in college. Hacked Geocities and MSFT Hotmail (completely owned both) when I was 20. Etc etc.

    1. Re: Taught myself by Anonymous Coward · · Score: 0

      Etc etc? Did you write that post from prison? Because that's where etc etc leads on the kind of fun you like to have.

  35. Good old fashioned basic interpreters is how. by Anonymous Coward · · Score: 1

    I started my programming on good old fashioned basic interpreters with gotos and all that jazz.
    All of the c/c++ zealots will cringe but it really is the best way to dip your toes in the water.

    1. Re:Good old fashioned basic interpreters is how. by serviscope_minor · · Score: 1

      All of the c/c++ zealots will cringe

      First C/C++ isn't a language. Second both C and C++ have gotos. Third, us C++ folks have mostly accepted that the world isn't the same way as it was in the 1970s. What was fine then isn't now, but that doesn't make it less fine.

      --
      SJW n. One who posts facts.
  36. Programming, not coding by GreatDrok · · Score: 5, Interesting

    i learnt to program at school from a Ph.D computer scientist. We never even had computers in the class. We learnt to break the problem down into sections using flowcharts or pseudo-code and then we would translate that program into whatever coding language we were using. I still do this usually in my notebook where I figure out all the things I need to do and then write the skeleton of the code using a series of comments for what each section of my program and then I fill in the code for each section. It is a combination of top down and bottom up programming, writing routines that can be independently tested and validated.

    --
    "I have the attention span of a strobe lit goldfish, please get to the point quickly!"
    1. Re:Programming, not coding by Anonymous Coward · · Score: 0

      Amen
        I started with Fortran in college in 1971,
      Moved on to Cobol, 360 Assembler, PL/1
      By 1978 was teaching PL/1, Lisp, and SNOBOL at the graduate level for RPI
      Then the Apple ][ basic and 6502 assembler, Smalltalk,and C
      Tried 4GLs like RAMIS -

      What really taught programming was originally it was all done with batch compiles, one or two compiles and tests per day.
      Learned to design before using coding pad.
      Learned to desk check after key punching the program.

      This all changed as far as learning to program was concerned when interactive programming and compile and test on demand was available. Now straight to coding seems to be the rule.

      Now learning R, not so much a language a a series of libraries to learn, as are many of the more common programming environments.
      I must say I liked SAS much better, for the error messages made since.

       

    2. Re:Programming, not coding by MrKaos · · Score: 1

      Just curious, which flowcharting technique do you use?

      --
      My ism, it's full of beliefs.
  37. By Example by jfmiller · · Score: 3, Interesting

    The TRS-80 booted to a basic prompt if there was no cartridge inserted. My dad got a book with a few hundred programs printed out, and one of use entered them in by hand and ran them. Then I would make changes to the code to make it do other things as well. I learn mostly by trial and error. When we got an Apple ][ clone I got a copy of "1001 things to do with your Apple II" and I was off to the races.

    I finally took some formal classes in college, but spent most of my time lamenting the need to listen to things I had already learned.

    The thing is, I had this opportunity because my parents had the resources to get the computers, and I was encouraged by teachers and friend to continue to learn. It is pretty clear that the best programmers all started by forth grade, not high school or college. If only rich white kids can start that early and boy are more likely then girls to take up computers as a hobby the current demographic deficiencies in the industry are likely to continue.

    --
    Strive to make your client happy, not necessarly give them what they ask for
    1. Re:By Example by thinkwaitfast · · Score: 1

      My first computer took me two years and almost killed me to earn. Today computers a thousand times me capable are given away for free in cereal boxes. Also a nearly infinite amount of learning resources. Thirty years ago you could spend a week learning something or solving a problem that now takes 15 seconds of google, not to mention the hundreds of free online books. Try buying a $22 book on $3 minimum wage ignoring the fact that most bookstores did not even carry computer books.

    2. Re:By Example by Anonymous Coward · · Score: 0

      Lucky with $22. The books I was looking at as a child were 90 DM (maybe $50?), in the early 1990s.
      Luckily my parents weren't exactly poor, though I am not sure if they actually were understanding or just gave in because I was annoying them about it (and not many other things that cost money).
      As to the article question: I started by reading manuals. Lots of manuals for things I never owned, but were cheap at the library. Then the C64 which, at least for child, had more than decent manual for its BASIC. Later the manuals for TurboPascal etc. C was the first language I learned without a proper book, but mostly at university, and mostly working on OpenSource projects. Living in Germany, with nothing like Amazon to buy English books, my impression was that all books about C were total and utter crap - if you could find any, while the Pascal ones were quite excellent.
      Didn't help that TurboPascal had proper inline assembler support, while C to this day has something between none, utter crap you can make work if you try hard enough (gcc) or kind of but who knows how badly the compiler breaks it (intrinsics).

    3. Re:By Example by Anonymous Coward · · Score: 0

      My programming career started in high school for me in 1982. I lived with my mom and 2 other siblings. My mom did not have the resources to purchase a computer.

      I was in an advance algebra and calculus my senior year and the math teacher would give use the last 15 minutes of class to start on the home work. Most of it was redundant calculations that I could punch out on a calculator. I decided that I could write a basic program to do the calculations and then input the numbers for the answers. I took the last 15 minutes of class to start on the program.

      I would then walk over to KMart behind the high school and enter the program on the commodore 64 they had on display. I started getting creative with the programs and eventually left one that interacted with KMart shoppers that asked for their name, what the liked about the computer and then displayed various calculations to show what the computer could do.

      Some manager eventually saw it and cornered me one day to ask if I was the one that did the program. I though I was in trouble as they didn't want anyone taking up time in front of the display computer playing the cheesy games that came with the computer.

      I eventually said yes I was. The manager said that if I would so some fancier stuff on the computer that he would have a chair waiting for me in the afternoons so I could do my homework and do other display programs. Little did I know that the display programs I was writing were selling more commodore computers.

      That is actually how I started programing and I had my first paid programming job November 1983 working on a HP computer writing calculus programs to export plotting points in HPGL for a HP CNC machine. Funny enough is that it was for a national tool making company that didn't know what IT staff was back then and hired me as janitorial staff. I was the only janitor there that had an office in the tool room and a computer. I worked for $5 an hour which I thought was a lot given every other janitor there worked for $3.25 an hour and I was only 18 at the time. I worked there for more than a year. It paid for my first apartment.

      If kids are still interested they could probably do the same thing today with display computers at the big box retailers now that KMart is no longer.
         

    4. Re:By Example by Agent0013 · · Score: 1

      I started on the TRS-80 also. Booted right to a green screen basic prompt. I had a rather large book on learning Basic with several various programs in there to type in. It had no disk drive so I had to type the program in again each day. Eventually I remember getting a tape recorder hooked up that could save the program to regular audio tape.

      --

      -- ssoorrrryy,, dduupplleexx sswwiittcchh oonn.. -Quote found on actual fortune cookie.
  38. In school, from 5th grade by Anonymous Coward · · Score: 0

    I'm one of the group that Slashdot crowd loves to despise - an H1B programmer who grew up in India. But unlike the stereotype that people here like to paint of Indian H1B workers, I'm a pretty good programmer/developer.

    In my school in India, programming was taught to all students as part of the school curriculum from 5th grade. In those days, during the first few years we were taught programming in GW-BASIC, and basic CS principles, binary arithmetic, boolean logic etc.. Towards high-school, COBOL and FORTRAN got added to the school curriculum.

    Once I reached college, I was required to learn the C language during my Bachelors in Engineering program as part of the curriculum. In parallel, on my own time, I also learned OOP and OOAD principles, Java, and some VB, SQL and C++ by the time I graduated from college.

    Once I graduated, I moved to the US on an H1B visa, and have been working here as a Java developer for more than a decade now. During that time, I've picked up a bit of few other languages, such as Perl, Python, LISP & Shell scripting, though I really wouldn't call myself fluent in those languages.

    1. Re:In school, from 5th grade by Anonymous Coward · · Score: 0

      You found your niche, and anybody who complains about that is just jealous.

    2. Re:In school, from 5th grade by NormalVisual · · Score: 1

      I'm one of the group that Slashdot crowd loves to despise - an H1B programmer who grew up in India.

      I don't have anything against those that are here on H-1Bs. I do have an issue with the employers that abuse the system, though. If you've been here 10 years, you should have at least been given the opportunity to get a green card, and should be allowed the same freedom of movement that any domestic employee would have without having to worry about being deported if something happens with your job.

      As far as the quality issue goes, I've worked with really crappy H-1Bs and really amazing ones. Like most domestic programmers, those that have a real interest in the field tend to do well, and those that got into it only because they thought it would pay well, not so much.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    3. Re:In school, from 5th grade by Anonymous Coward · · Score: 0

      And I thought India guys who knew how to write proper english did not exist. Kudos to you sir.

  39. Commodore VIC-20 by JBMcB · · Score: 3, Interesting

    I was interested in computers since I was around 7. My first computer was a V-Tech "Learning Computer" which barely did anything, but I played with it all the time. My dad bought a used VIC-20 from a friend, and I sat with this book and tape until I could program Basic:

    https://archive.org/details/VI...

    --
    My Other Computer Is A Data General Nova III.
  40. Learned Python by doing by oakgrove · · Score: 2

    I started on page one of the O'Reilly book Learning Python and, get this, wrote a flash card program that quizzed me on Python. The further along I got in the book, the better the program got. Had to start over three or four times to clean up the spaghetti but by the time it was all over I had a pretty good handle on what I was doing.

    --
    The soylentnews experiment has been a dismal failure.
    1. Re:Learned Python by doing by Quirkz · · Score: 1

      That's a sensibly nifty approach. It always helps to have a project to work on as you learn, and in the absence of any other project, using your learning *as* the project is a good one.

  41. Programming by TheRecklessWanderer · · Score: 2

    I started when I was 15 years old (that would be 1992) on a Commodore 64. I wanted to write a program that would generate character sheets for me in Dungeons and Dragons and print it out. Then my Dad asked me to write a program for currency exchange. I think he even used it once or twice. LOL. I guess today I would be working on Java or Raspberry Pi projects. Learning was much harder then because there was no internet but the programming (BASIC) was much less complicated,

    --
    Mean what you say...say what you mean.
    1. Re:Programming by Anonymous Coward · · Score: 0

      Saw this post on GPlus 'bout the old Vic-20's. Was that similar to the Commodore basic, then ?

      https://plus.google.com/116093387150268003697/posts/DKr5GG7Yz4n

  42. Learning method by SeriousTube · · Score: 1

    Basic, then Z80 assembly on a timex ts1000 (a Sinclair zx81 rebranded for the US market).

  43. Unreal by Anonymous Coward · · Score: 0

    Really it's a desire to make that probably started with lego, but my first real experience tinkering with code comes from the first Unreal game. My father would atay up late to play it, and durning the day i would sneak on the computer and open up unrealed and load rooms full of baddies and put guns ever so far out of reach, that lead to an interest in learning uscript, and modding other games.

  44. College Sorta Kinda by Zobeid · · Score: 2

    In college they didn't teach any courses in the hip new language that I wanted to learn, so I took a course in Pascal and taught myself "C" in parallel with that.

    I liked C a lot better.

    I *also* learned an immense amount during the same time period by picking apart an open source game, modifying it, expanding it, learning everything about how it worked. I'd say the majority of what I ended up actually learning was self-taught.

    However. . . Looking back, I'd already been dabbling with trying to learn BASIC and other such stuff for a few years by that time, and my progress had been VERY SLOW. I'm sure my self-teaching/dabbling progress would have been way faster if I'd had access to the amazing online resources that now exist.

  45. C64, Color bars by Anonymous Coward · · Score: 0

    Thought that was cool. From there got the C64 Prg Guide ("kernal") that Commodore put out, the one with the plastic fingers binder, about 2 inches thick. Went to 6502 assembly soon after since the MS-Basic was weak. Went on to do some 8500 programming too (whatever the floppy drive used). Thought I was hot. I was, compared to everyone else, but still a greenhorn by any definition I would use today. Then on to 8086 assembly. Still used BASIC as the base from which to run the asm code. QuickBASIC 2.0. Then on to the basic compilers (BASCOM). Then on to C. Then to C#. Then to C++.

    There was formal stuff in there, too. Fortran. PL/I. RPG! (actually disliked that, not really a programming language, after all). Actually, did get a BBA out of it. BBA, yes.

  46. On a Commodore VIC20 by Anonymous Coward · · Score: 0

    Look its a computer!

    It has BASIC built in... now start typing!

  47. TRS-80 by Anonymous Coward · · Score: 0

    Basic, around 1985.

  48. Uniquely qualified? by Anonymous Coward · · Score: 0

    That's a mighty big presumption. Citation needed.

    As for me, I took a course in high school that went as far as if-then and for-next using cards. Years later, I was asked to solve a business problem. They handed me a laptop and a Wrox book on Microsoft Access. 14 hours later I had solved the problem and fallen deeply in love.

    More recently I taught advanced C# at college.

    I have absolutely no idea how best to teach any particular age group.

  49. same way i learned German: by Anonymous Coward · · Score: 0

    while watching scat videos on porntube.de

  50. pretty standard by Gravis+Zero · · Score: 5, Funny

    I was on a school field trip, wandered away from the group and was bitten by a radioactive programmer. Pretty standard stuff.

    --
    Anons need not reply. Questions end with a question mark.
    1. Re:pretty standard by MrKaos · · Score: 1

      Brains, BRAINZSZZZ!

      --
      My ism, it's full of beliefs.
  51. Hypercard by 0100010001010011 · · Score: 1

    Learned to use Hypercard on my Mac.
    Then messed around with changing colors on the Commodore 64 at elementary .
    - A TI-83 & TI-89 at high school.
    - Matlab class in college.
    - PHP in my free time in college.
    - Then Java, C, C++ in college.
    - Then 'self taught' Python from code academy (just to learn the syntax).

  52. I'm still learning by davidwr · · Score: 1

    I started BIGNUM years ago and I hope I'll still be learning until the day I die.

    --
    Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
  53. Re:1st by Anonymous Coward · · Score: 0

    2nd

  54. MUD! by Ralgha · · Score: 1

    I taught myself C by staring at ROM code. I figured out all the syntax and statements of C that way. Eventually bought a standard library reference too.

  55. Computer Science? by Anonymous Coward · · Score: 0

    In 1978 as an undergraduate was fortunate to attend a FORTRAN77 class given by the Electrical Engineering Dept.

    A few years later I bought a Commodore VIC 20 and a book about BASIC (1981).

    I bought a book on DOS: DOS BIBLE (1984).

    Then I took a class that was taught using a Digital VAX and a variant of UNIX (before C) (1986).

    Then I took a class on UNIX and C (Summer 1992, University of Maryland). At the "computer lab" there was a NeXT workstation.

    Then I took a class on UNIX Administration (1995).

    Then I took a class on LINUX (1999).

    2000 through 2016, bought O'Reilly books on LINUX and UNIX, Perl and PhP, Java, C++; still taking classes as the topics narrow to specifics of hardware and MPI for instance. :-)

  56. My dad wouldn't let me by scybolt · · Score: 1

    When I was 10 years old (1995) my dad refused to download any more DOS games on CompuServe. He said "Son, if you want to play more games, you'll have to make your own!". So I did. I began writing DOS batch file-based adventure games. Later I learned TI-83 BASIC in grade 7, then gwbasic and QBasic in grade 10, as well as HTML by seeing what would happen if I changed file contents. Later Visual Basic, Java, Javascript, the rest is history... after a few years with Lockheed Martin I'm now the CIO of a growing software startup (vsbuilder.com).

  57. 1st programming. self taught basic in 1976 by chromaexcursion · · Score: 3, Interesting

    Using a teletype on the school district mainframe, with an acoustic modem. There was no such thing as a personal computer at that time.
    I taught myself basic.
    Pascal was the language taught in college.
    Since then I've taught myself C, C++, Java, Python, Javascript, ...

  58. PDP-11/05 by jpellino · · Score: 1

    MU BASIC.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  59. All of the shitty code out there. by Anonymous Coward · · Score: 0, Insightful

    Just look at all of the shitty, shitty code that's out there. Any professional programmer will have encountered it. It turns out that nearly all of it is the product of these untrained programmers (they like to call themselves "autodidacts" to try to sound better than they are).

    What's worse is that they'll try to blame properly trained professional programmers for this shitty code. Yet often it's the professional programmers who are burdened with fixing this broken, awful code written by untrained programmers.

    It's really disappointing to see how much software out there is written in, say, JavaScript, just because that's the only language that some untrained programmer knew of. Or how many software systems use NoSQL databases that lose or corrupt data just because some untrained programmer didn't want to learn SQL and didn't know how to use a relational database. Or how these untrained programmers try to sort collections of millions of items using bubble sort only to wonder why it's so slow. It's all so unnecessary. If trained professionals had written the software in the first place, then all of this waste would've been avoided.

    All of that code is the citation you're looking for.

    1. Re:All of the shitty code out there. by binarylarry · · Score: 0

      I'd be willing to bet you're a shitty programmer and your coworkers hate you.

      --
      Mod me down, my New Earth Global Warmingist friends!
    2. Re:All of the shitty code out there. by Art+Challenor · · Score: 1

      Just look at all of the shitty, shitty code that's out there. Any professional programmer will have encountered it. It turns out that nearly all of it is the product of these untrained programmers (they like to call themselves "autodidacts" to try to sound better than they are).

      My experience is that most of that code is written by people who got a CS degree because they thought it was a good way to earn money. There's also a good body of such work from people who wrote the code because they had to and had some computer background (often IT or EE) but had no real aptitude for coding. The people who learned to code because they wanted to and would code if they had to work nights and weekends at McDonald's if they couldn't make a living coding, generally produce good code (there are CS,EE and a whole host of people in that category).

    3. Re: All of the shitty code out there. by Anonymous Coward · · Score: 1

      Fully agree, i have been in this industry for over 20 years and the amount of bad code i have seen as increased linearly with the amount of "professional" programers involved... the more they were, the worst the code

    4. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0, Insightful

      When an untrained amateur programmer accuses a well-trained professional programmer of creating "bad code", it's usually because the untrained amateur programmer doesn't understand the code.

      The untrained amateur programmer sees that the code from the well-trained professional programmer is written in C++ and thinks, "UGH! That's ugly!" and has an urge to rewrite the code in a language like JavaScript or Ruby. But the untrained amateur programmer doesn't realize that it was written in C++ because it needs to be portable to more platforms than JavaScript and Ruby support, plus it has to run extremely quickly.

      In other cases the untrained amateur programmer won't understand the algorithms being used. The code will look "messy" because they don't have the knowledge and skills to comprehend it. They won't understand that a more complex algorithm was chosen because it gives better average-case and worst-case execution times and/or memory usage.

      In yet other cases the untrained amateur programmer won't even realize what they don't know. When they don't know what an index is, or don't know what data consistency is, or don't know that sometimes it's necessary to write complex queries, they won't see the need to use a relational database. When they see a well-trained professional programmer using such a database, the untrained amateur programmer won't realize why it's being used.

      The untrained amateur programmer will likely go on Slashdot and make asinine comments like,

      i (sic) have been in this industry for over 20 years and the amount of bad code i (sic) have seen as (sic) increased linearly with the amount of "professional" programers (sic) involved

    5. Re:All of the shitty code out there. by Anonymous Coward · · Score: 1

      Unfortunately, many programmers who have gone to school also write shitty code. Especially now, since many schools are dumbing down the curriculum in order to increase the number of graduates.

      I agree that a good education can produce programmers that can deliver solid solutions. But much (if not most) CS education is not good these days.

    6. Re:All of the shitty code out there. by Anonymous Coward · · Score: 0

      This whole comment is likely a troll. On the off chance it wasn't: no.

      Software development is still a new thing which changes rapidly, you can't train people on new things and expect competency, that's how you end up with H1B's in the first place. Formally educated people may know out of the box what the difference between a bubble sort and a merge sort is, but self-educated programmers have actually used both along with dozens of others, inclusive of some not even in the course, to see them in real systems after equal amounts of education measured in time.

      People who can't teach and people who have no passion to learn are taught by those incompetents. In an industry well under a century old the decade or two turnaround time to get a professor from industry to teaching to producing a student is about the equivalent of teaching someone how to build a wooden boat in order to have them design a nuclear submarine. To top it all off they come out as arrogant pricks thinking what they were taught is actually right and you end up with entire platforms that are outright abortions cough...Android as an OS running Java...cough.

    7. Re:All of the shitty code out there. by Darinbob · · Score: 1

      There's a variant of this. The EE or science grad that learned a little bit of programming in school then ended up primarily as a programmer as a career. With completely awful code to match if they are more interested in results than in maintenance. Ie, one person said he thought using "const" was a waste of his time.

      Granted, CS technically isn't really supposed to teach programming either, it's something you pick up along the way. But at least in CS you should be learning some theory with a wide exposure to lots of computing styles.

      I learned very very basic programming briefly on my own but not enough to get anything done (not owning a computer either for a long time afterwords, as they were extremely expensive). But I really did not learn until I went to college and had a real class in it. But even then I didn't program well until I took later classes teaching a lot more stuff on the side - comparative study of programming languages for wider exposure to concepts, AI for more in depth Lisp usage, numerical analysis so that floating point numbers and scientific code was clearer, microprocessor lab and operating systems so the concepts of concurrency became natural, compilers which naturally make you understand computer languages and how everything works under the hood (I am amazed at how many professional programmers treat the CPU as a mysterious black box), etc.

      You can learn all this on your own, but the self discipline is enormous. Most people who learn on their own skip the boring stuff, skip stuff they can't see a use for, skip the time consuming stuff, and basically skip everything that they can't use immediately (short term results). And I've met a lot of self taught people who describe themselves as greatprogrammers who I'd categorize as mediocre programmers.

    8. Re:All of the shitty code out there. by Darinbob · · Score: 1

      I wanted to "code" but that was very minor. I also wanted to understand computers. I never really trust the programming or engineering aptitude of people who call themselves a "coder". That's like working in the hardware lab and calling yourself a "solderer", or working in a biology lab and calling yourself a "cage cleaner". Sure, not bad jobs, but the goals are not all that lofty.

    9. Re: All of the shitty code out there. by Darinbob · · Score: 1

      Personally, get lots of "software engineering" types and gets a mess. More effort is put into having the correct process than in getting stuff done, arguing over the proper design pattern to use, drawing the UML diagrams correctly, and so forth. Granted if the task is extremely complex then you need some of these tools to manage the complexity - but those tools are just tools and should not become the primary focus.

      Sometimes I sense a sort of inferiority complex amongst programmers, where they see all these other engineering fields with what they think are interchangeable standard components, rigid design rules, "proper engineering practices" and feel jealous that such things don't exist with programming. The holy grail being to automatically generate code based upon a set of precise specifications and requirements. Except that those things don't really exist in other engineering fields to the degree people think they do, all that stuff gets designed badly too, from bridges to electronic circuit boards to warplanes, not really the sort of thing you want to emulate exactly. Work for defense industry for a bit and you'll learn that precise specifications and requirements are elusive and don't really help you much except to extract more government money.

      But at least these software engineering types are focused on very high level (and fashionable) languages so I don't deal with them much anymore.

    10. Re:All of the shitty code out there. by Gr8Apes · · Score: 1

      Ah bullshit. My (non CS) engineering degree had more programming taught in it than most current CS courses teach. On top of that, to answer the topic's question: I "learned" originally to code in basic, if you could call it that, for about 2 copied programs worth, found it worthless and delved into assembly immediately to get into the interesting things. There weren't any other languages really available at the time, not for any platform I had access to. Later on, learned COBOL, FORTRAN, C, C++, Java, C#, JS, Perl, Ruby, Python and any number of supporting libraries and quite a few scripting languages. What's the point of this question?

      --
      The cesspool just got a check and balance.
    11. Re:All of the shitty code out there. by NicknameUnavailable · · Score: 2

      Clearly either "troll" or "idiot." There is no form of argument lower than insulting the level of formal training. People work together to do things they are incapable of doing alone, anyone that is self-taught is inherently going to be better than anyone that was formally-educated in a 1-on-1 basis. If you believe modern universities exist for a reason beyond socialization and building up connections to leech off society like a parasite you are an "idiot" and deserve what is likely crushing student loan debt to go with your haughtiness and arrogance. If you just made the comment to get a response though I'll chalk you down as a rather successful "troll."

    12. Re: All of the shitty code out there. by Darinbob · · Score: 1

      One goal should be able to make the code readable to untrained amateurs perhaps? Obscure code for the purpose of job security is silly. And code that only one programmer on the team understands is dangerous because very often that person will change jobs and leave the original company in a bad position, and I have seen that many many times. If I ever see the attitude that no one else needs to understand the code then that's a programmer I don't want to work with (and who I will give a bad peer review to if I do have to work with him or her.).

      Add more comments; don't use silly C obfuscation tricks, give variables and functions meaningful names; write the code so that someone else can maintain it later; and so forth.

      In my experience, when I run across code that's difficult to understand it also is not very efficient either, except perhaps in a very localized way.

    13. Re: All of the shitty code out there. by NicknameUnavailable · · Score: 1

      Add more comments; don't use silly C obfuscation tricks, give variables and functions meaningful names; write the code so that someone else can maintain it later; and so forth.

      Heathen! Read the bible least your career be damned!

    14. Re: All of the shitty code out there. by Anonymous Coward · · Score: 1

      Obscure code for the purpose of job security is silly.

      Why the fuck would think that that's what the GP comment suggested? What the fuck?!

      One goal should be able to make the code readable to untrained amateurs perhaps?

      Uh, no. Where the fuck would you get that from? That's like trying to get somebody who only knows written English to immediately understand written Chinese after seeing it for the first time. It's a fucking dumb idea in that case, and it's a fucking dumb idea when it comes to code. The whole problem is that the untrained amateur lacks the knowledge and experience to understand what he's seeing! We shouldn't, and often can't, just dumb down code for fools.

      Add more comments; don't use silly C obfuscation tricks, give variables and functions meaningful names; write the code so that someone else can maintain it later; and so forth.

      Where the fuck is any of this coming from? This is the kind of shit we see out of the untrained amateurs, not professionals. If this is what you're seeing, then you've never worked with professional software developers. The code you're describing is what we get from the amateurs!

    15. Re: All of the shitty code out there. by Darinbob · · Score: 2

      Ha, creative mispelling. I ran into this once. I was working with code that was using a "saclingFactor" all over the place. This was in many files, across many directories. I didn't know what this was so I tried to leave this alone as much as I could, I assumed it was some sort of medical term given that this was a medical machine. Turns out it was just a typo, and should have been "scalingFactor"! But it got copied because either the programmer was too lazy to fix it, or there was some autocompletion in the programmer's editor that kept copying it. Once I figured it out then things made more sense, and instead of mysterious code with a strange set of calculations that didn't make sense it turned out to be somewhat normal code with a bug.

    16. Re: All of the shitty code out there. by thinkwaitfast · · Score: 1

      ? All the self trained programmers that I know, program in asm, C, mathematica or FORTRAN. I don't know java or anyone who does. I'm sure I could write a java program if you gave me a book half an hour and a lot of money (as I have 0 interest in doing so).

    17. Re:All of the shitty code out there. by thinkwaitfast · · Score: 1

      up primarily as a programmer as a career.

      This kinda describes me, but more along the lines of understood programming better than most of the CS people rather than falling into it. How many CS grads understand scaled integers, IEEE754, memory alignment, pages, memory controllers, jtag, vhdl, DMA, interrupt nesting, tcb, som, abi, BDM, MISRA, deferred interrupts, wimg, cache lines, etc? About 4 in the last 30 years. Most of these you probably don't even get in ojt, but found by research and interest.

    18. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      Or more like working in construction and calling yourself a builder... but that one makes sense.

    19. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      I'm not sure the language itself is paticularly relevant although procedural vs OO is clearly a potentially big factor.

      For me, I started programing at 13 when I got my first home computer. This was in the early eighties before there was any form of computing education in British schools. Although I did get a job programming, that didn't stop me from getting an education as well and I still think that is an important part of my skillset today (I'm almost 50 and a DBA). My degree included a lot more than programming. Sure, we were taught good skills (no OO alas) but we also learnt systems design, networking and the business side of IT as well.

      Although I am a DBA, I still consider it important to be able to program, design and support other disiplines. IT is certainly a lot more than programming although I would consider it a core skill. Education made sure I wasn't working in the IT industry with blinkers.

    20. Re:All of the shitty code out there. by Bert64 · · Score: 1

      A "professional" is someone who is paid, it has nothing to do with competence or training...
      And there's many more reasons for poor code...

      Generally the self taught people have an interest in learning, and will spend the time learning different languages or tools if they are more appropriate.. By contrast, someone who has solely been trained but has no real interest in the subject will use the tools they were trained to use even if they are poorly suited to the task at hand. If you want such people to use different tools you generally have to provide training for them, they won't go away and learn about it on their own.

      And in either case, it's your own fault if you hired people who aren't proficient in the tools appropriate to the job you hired them for.

      A lot of bad code often has nothing to do with the actual developer too, people are under pressure to meet deadlines so they cut corners, they are given poor or constantly changing specs, or are put under constraints about what tools they should use often by people who don't understand the technology.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    21. Re:All of the shitty code out there. by Bert64 · · Score: 1

      A good education is only useful when combined with someone who also has a genuine interest in the subject. Teaching someone to perform a task they have no interest in beyond getting their paycheck will generally only produce mediocre results.

      If someone has a genuine interest in programming such that they've taught themselves a lot them those are the people who need good education to clear up any rough edges in their methodology.

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    22. Re: All of the shitty code out there. by gmack · · Score: 3, Insightful

      I can tell your code quality by your arrogant post that just assumes people who don't understand your code aren't trained enough.

      Everyone knows that debugging is twice as hard as writing a program in the first place.

      So if you're as clever as you can be when you write it, how will you ever debug it?

      --- Brian Kernigan, "The Elements of Programming Style", 2nd edition, chapter 2

      I had this quote framed and put on the wall at the last place I worked were btw, some new guy wanted to tear up perfectly working C and replace it with SCALA so it would be more "modern" and tried to go over my head to do it.. At the job before that, I had to sit there for a week as a possible client went through my code and then decided it looked easy enough that they could re implement it themselves (turns out, no they couldn't)

      "Messy" is not about not writing complicated code messy is about being complicated when you don't have to be and not properly abstracting the complicated parts and not commenting the worst parts. Messy is about over depending on order of operations instead of using brackets to make things more clear (to top this off, many compilers screw up order of operations so the code may not be doing what you think). Messy is about doing the same complicated thing 5 times instead of making a function (or even a macro) to do the work. Messy is about not knowing when to split a function into a separate one rather than adding new parameters to the existing function to make it handle more cases.

      Don't even get me started on programmers who think cleaning up compile warnings is a waste of time or who split databases for speed reasons (hint: if you are always joining the same 3 tables in every query it's not faster any more)

    23. Re: All of the shitty code out there. by DamonHD · · Score: 1

      I am a self-'trained' programmer, other than what my mum taught me before I had an actual computer to run things on.

      I self-taught asm, C, C++, and Java amongst other things, and earned pretty good rates around that work. (The only languages I was taught formally that I recall were Prolog, Pascal, Smalltalk and Lisp, and I have never written a significant amount of (or any) production code in any of them, thankfully.)

      So now you do know someone different.

      Rgds

      Damon

      --
      http://m.earth.org.uk/
    24. Re: All of the shitty code out there. by arth1 · · Score: 1

      Fully agree, i have been in this industry for over 20 years and the amount of bad code i have seen as increased linearly with the amount of "professional" programers involved... the more they were, the worst the code

      I think there's a difference in what is considered shitty code. An old school bottom-up programmer will call code that is bloated, slow and new bugs surfacing periodically for decades quite shitty, while a school taught top-down programmer will call code shitty if it's hard to understand or maintain.
      Both are right, but from different perspectives.

      As a paying customer, who you want to listen to depends on whether you have a long-term software project, or software that needs to get out and never be touched again.

    25. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      Builder is usually the term to describe the top level contractor.

      There are framers, roofers, etc.

    26. Re:All of the shitty code out there. by UnknownSoldier · · Score: 1

      > Just look at all of the shitty, shitty code that's out there.

      Sadly the two biggest pieces of shit, PHP and Javascript, have the most crap code.

      > What's worse is that they'll try to blame properly trained professional programmers for this shitty code.

      What's worse is over-engineered code supposedly written by professionals.

      i.e. Look at C++'s Boost's CRC complete clusterfuck.

      HOLY FUCK. 1109 lines of over-engineered C++ shit for a simple CRC32 function when a mere 21 lines of code would solve 99% of the problem!?!?

      When was the last time you needed a custom CRC hashing function??

      Here are the "de facto" easing functions in Javascript. Look at this over-engineered garbage:

      easeInElastic: function (x, t, b, c, d) {
              var s=1.70158;var p=0;var a=c;
              if (t==0) return b; if ((t/=d)==1) return b+c; if (!p) p=d*.3;
              if (a < Math.abs(c)) { a=c; var s=p/4; }
              else var s = p/(2*Math.PI) * Math.asin (c/a);
              return -(a*Math.pow(2,10*(t-=1)) * Math.sin( (t*d-s)*(2*Math.PI)/p )) + b;
          },

      WTF? This can be written simply as:

      easeInElastic: function (x, t, b, c, d) {
              t /= d;
              if (t <= 0) return b ;
              if (t >= 1) return b+c;
              t -= 1;
              return -(c*Math.pow(2,10*t) * Math.sin( (40*t-3) * Math.PI/6 )) + b;
          },

      Which is still obnoxious compared to the simple one parameter version:

      easeInElastic : function(p) {
              var m = p-1;
              if( p <= 0 ) return 0;
              if( p >= 1 ) return 1;
              return -Math.pow( 2, 10*m ) * Math.sin( (m*40 - 3) * Math.PI/6 );
          },

      BASIC, JavaScript, PHP, C++ are only part of the problem -- you can write shit in any code -- it is the mindset of people abstracting everything until it is completely over-engineered where it becomes job security.

      Almost no one gives a dam about writing clean, simple, code and taking pride in their craft.

    27. Re:All of the shitty code out there. by CAOgdin · · Score: 1

      Amen! As I point out below, it's the difference between knowing what the end result it supposed to be, and tinkering to see if you can make it work without knowing what "it" is!

    28. Re:All of the shitty code out there. by Art+Challenor · · Score: 1

      Agreed. I've met a significant number of "coders" who have no idea how networking works, even to the point of not understanding IP addresses. These are, presumably, the same people who write websites where the credit card number has to have the correct formatting (spaces, no spaces, dashes, etc.) It's 16 DIGITS. Anything that isn't a digit is not part of the CC number, if you don't get 16, or the checksum doesn't match you don't have a valid CC number. (Pet peeve, see also phone NUMBER)

    29. Re:All of the shitty code out there. by Anonymous Coward · · Score: 1

      There are three types of shitty code

      1) Code that is visually shitty and represents a lack of a mental model
      2) Code that is visual pleasing and represents a lack of a mental model
      3) Code that is somewhat visual shitty but represents a mental model, which places bounds on how visually shitty the code can be

      Most untrained people crank out #1, most professional(pattern-antipattern cargo-cult programmers) people produce lots of #2, and the untrained unicorns create #3.

      I am burdened with fixing programs from great coders but horrible programmers. When something goes wrong and you ask them why, they have no idea. Even after hours with a debugger they have no idea. With only a basic description of the problem from the customer, I typically know where to look even though I have never seen the code and never worked on any part of the project.

      Most programmers that I have met have virtually no ability to debug problems. I attribute this to a lack of an ability to create a proper mental model. When a problem has been going on for 3 days, the CEO is breathing down the necks of several senior developers and the lead architect, and none of them can figure out the problem, then I come strolling in with absolutely no knowledge of anything they're working on, ask a few questions, create a hypothesis that turns out to be correct in only a few minutes time.

      I can't tell you how many times similar situations have occurred for me. I don't need knowledge, only reason. I assume computers are sane and most operating systems are sane, which leave the only thing that is insane to be whatever the programmers have created. Using just these basic assumptions, with virtually no knowledge, I can quickly solve almost any hard debugging problem magnitudes faster than many others. Most people want empirical evidence, I go off of gut instinct. I actually have little experience coding and little experience debugging. I've just always been naturally good at it. I attribute this to introverted reflection of my own thoughts that I have always done since I was old enough to remember. The possible reasons for something to not be working is boundless, but once you apply some logic, you limit the causes. By viewing the problem from many directions, you further limit the problem. It's similar to triangulation in an abstract way. Some people have to scour the entire forest of possibilities, I like to take a few measurements, triangulate the general position, then go hunting.

      A lot of people find solace in experienced programmers, but rarely are two problems exactly the same, and most programmers, experienced or not, have a hammer and want to nail the problem. They do not have the ability to detect new problems that are similar but not the same. The nuances of the difference are lost on them, and even when I point out they're doing it wrong my warnings fall on deaf ears. We've hired many of the best in the industry for various projects, yet they make incredibly obvious mistakes, at least obvious to me. Only fools learn solely from experience. They have great hindsight and never repeat a mistake, but without foresight, they are doomed to be constantly making mistakes in the ever changing landscape of technology.

      My code is also shitty. I'm still getting better, especially now that we're finally doing peer review. But one thing I have always had going for me, is I write high performance easily debuggable code. I don't mean debuggable as in using a debugger, good luck debugging my multithreaded-async code doing it that way. No, my code is easy to debug using a whiteboard. I've gotten to work with a few other programmers, and I described how I designed my system, they drew the relationships and quickly found where the issue was without even looking at the code. Cross training, ftw.

      When you can reason about the code, it's easy to fix, even with the coding style is shit. Irrational code, regardless of how clean it is, is still shit. Good code can be debugged on a whiteboard.

    30. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      No kidding, the worst programmers and coders i have ever met are the one that are "properly trained" they have no passion for it and basically bitch, whine and moan about everyone else's stuff.

      Meanwhile, if given the task of writing a "hello world", it'll be beautifully written (perhaps even in rpn) but wont actually work. And it only took them two weeks to do it, another two weeks to debug. During which, they'll be bugging the crap out of the other guys in the team (that they were bagging on) to help.

      Im saying this as a some what impartial obsever. I consider myself an SA/automation guy above all else and can write some pretty horrific stuff that works. But I'm no developer/coder/programmer.

      My dad was an EE for a bank, the work he brought hime consisted of punch cards. On take you kid to work day i saw room sized wangs and pdp11's, tape reels etc. My first home computer was a ti-994a with the voice modulator and a tape recorder to save programs to. I thought i was king shit because my "computer" could speak to me. Later, we had the first pc, then the AT, XT, mfm drives and the lot. Then Compaq, RE'd the bios and my dad and i started building our own. My first computer I could call my own was a 486 DX 50 bitches! Cost me close to 4K! I saved up for that with paper routes and bagging groceries. Ive basically had to work for what interested me/wanted since I was 8 yrs old. What punk ass, little snot can say that these days when they get everything handed to them on a silver platter and have never been expected to work until after college. Then have the gall to expect 6 figure salaries.

      I guess what im trying to say is when building team/hiring, I'll take the guy that has the passion vs the guy that got "educated" 80% of the time.

    31. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      I've been reading a book by a world-renowned software architect, and he described what I've always thought. He said the architect must be chosen upon from a bottom-up viewpoint, but the architect must be designed from a top-down. I just always described it as a hybrid where I work in from both directions at the same time.

      This circular dependency makes it difficult for many people because you need to be able to move up and down abstract layers quickly. You don't force your problem to fit your architecture, you make your architecture fit your problem, but in order to define your problem, you first need some basic architecture to describe it. This does sound like agile, in that quick iterations would help, but this is not true. Agile-architecture is an oxymoron. It can be done, but it is painful, slow, and causes much technical debt along the way. The more you attempt to minimize your technical debt, the slower it goes and the more technical debt you create. There is no winning. Do it mostly right the first time or suffer the consequences.

    32. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      He said the architect must be chosen upon from a bottom-up viewpoint, but the architect must be designed from a top-down.

      What a load of rubbish.

      Perhaps you could post it in the original language and hope somebody translates it.

    33. Re: All of the shitty code out there. by Anonymous Coward · · Score: 0

      "Messy" is not about not writing complicated code messy is about being complicated when you don't have to be and not properly abstracting the complicated parts and not commenting the worst parts.

      Messy is a run-on sentence that is missing a semicolon.

    34. Re:All of the shitty code out there. by Anonymous Coward · · Score: 0

      A "professional" is someone who is paid,

      No.
      A professional is someone who does it for a profession... as opposed to an amateur or a hobbyist.

    35. Re:All of the shitty code out there. by flargleblarg · · Score: 1

      I disagree with you. GP is spot-on. 30+ years professional programming experience here, and I agree with the GP on every single point. There's nothing arrogant or hauty about what GP is saying. The code he presented is garbage and his revision is much, much nicer. The fact that the original version was written by so-called professionals is extremely sad. Some people just can't write elegant code at all, unfortunately.

    36. Re:All of the shitty code out there. by flargleblarg · · Score: 1

      Excellent example; thanks for sharing! Wow, that is really shitty code. Your rewrite is much cleaner.

    37. Re:All of the shitty code out there. by Creepy · · Score: 1

      Hmm... that seems strange... p (or t) in the updated version seems to take all cases, so would return before it ever got to the final return function. That or I just don't know javascript that well (I've read and done a few examples, but not seriously studied it, so I'm going by C-like behavior). Isn't having a = redundant as far as the = goes, as well?

    38. Re:All of the shitty code out there. by Creepy · · Score: 1

      the second = was supposed to say >= but I forgot to escape the greater than

    39. Re:All of the shitty code out there. by UnknownSoldier · · Score: 1

      > That or I just don't know javascript that well (I've read and done a few examples, but not seriously studied it, so I'm going by C-like behavior).

      Yes, JavaScript behaves (mostly) like C.

      The original easing functions are buggy: (Legend: b = start, c = (end - start), d = duration.)

      * x parameter is not even used!
      * Generate NaNs if d == 0
      * Doesn't handle case t < 0
      * Doesn't handle case t > d
      * Slow & Inefficient due to dead code

    40. Re: All of the shitty code out there. by lsatenstein · · Score: 1

      I can tell your code quality by your arrogant post that just assumes people who don't understand your code aren't trained enough.

      Everyone knows that debugging is twice as hard as writing a program in the first place.

      So if you're as clever as you can be when you write it, how will you ever debug it?

      --- Brian Kernigan, "The Elements of Programming Style", 2nd edition, chapter 2

      I had this quote framed and put on the wall at the last place I worked were btw, some new guy wanted to tear up perfectly working C and replace it with SCALA so it would be more "modern" and tried to go over my head to do it.. At the job before that, I had to sit there for a week as a possible client went through my code and then decided it looked easy enough that they could re implement it themselves (turns out, no they couldn't)

      "Messy" is not about not writing complicated code messy is about being complicated when you don't have to be and not properly abstracting the complicated parts and not commenting the worst parts. Messy is about over depending on order of operations instead of using brackets to make things more clear (to top this off, many compilers screw up order of operations so the code may not be doing what you think). Messy is about doing the same complicated thing 5 times instead of making a function (or even a macro) to do the work. Messy is about not knowing when to split a function into a separate one rather than adding new parameters to the existing function to make it handle more cases.

      Don't even get me started on programmers who think cleaning up compile warnings is a waste of time or who split databases for speed reasons (hint: if you are always joining the same 3 tables in every query it's not faster any more)

      Bravo. I agree with you.
      I write code as a hobby. Anyone who reads my code can follow it. I write code as I would write a story. There is the introduction (what the program does and a history of changes), and chapters detailing each aspect, (functions). Then I use auto-indentation for my code as well as reviewing all warning messages so that the compiles run without any error or warning messages (gcc or g++ -O3 -Wall -Wextra )

      Any new code that I write, is revisited a week later. I have to answer the "Do I understand what I wrote last week?" Sometimes code simplification ideas come after a day or so away from the sources. I have the time and desire to "tweak code towards simplicity"

      --
      Leslie Satenstein Montreal Quebec Canada
    41. Re:All of the shitty code out there. by NicknameUnavailable · · Score: 1

      He presented no code, but I'm going to discount you as a liar for suggesting you have 30+ years of experience. Nobody that experienced would agree with him unless they were absolutely incompetent.

    42. Re:All of the shitty code out there. by Bert64 · · Score: 1

      And the difference is that they get paid for their work, unlike an amateur or hobbyist...

      --
      http://spamdecoy.net - free throwaway anonymous email - avoid spam!
    43. Re:All of the shitty code out there. by Lotus456 · · Score: 1

      Well, yeah, that's part of the definition, but the connotation is that you've dedicated yourself to the role.

      Maybe you're a professional programmer who's out of work, and you just dug your neighbor some fence post holes yesterday for $100.

      If someone asks you what you do, do you say, "I'm a professional fence post hole digger"?

      --
      "It's a good computer... for I to BM on!" - apologies to Triumph, the insult comic dog
    44. Re:All of the shitty code out there. by flargleblarg · · Score: 1

      He presented no code,

      That's odd. I thought the subthread I was replying to had the code in it. Here's the code:
      https://ask.slashdot.org/comme...

    45. Re:All of the shitty code out there. by NicknameUnavailable · · Score: 1

      Referencing things in other threads is dumb.

    46. Re:All of the shitty code out there. by flargleblarg · · Score: 1

      Thank you for pointing that out. I hadn't realized how dumb I was.

  60. A dynig brred by Anonymous Coward · · Score: 0

    I'm not sure there are any of us left but I was taught programming at a formal IBM assembly language school in 1966. The class exercises were run in a virtual environment (vmware is hardly new technology) so as not to crash the mainframe The favorite machine opcode of course was HCF - halt and catch fire! The closest thing today would be studying the Knuth books which sadly are hardly used anymore.

  61. Community College by Anonymous Coward · · Score: 0

    I learned to program starting as a Freshman in High School. The year was 1972, and the community college across the street from the High School had an IBM 360 and as part of their agreement with IBM to have the mainframe at a discount, they had to offer free user accounts to the public. I learned about this from another Freshman who's father taught at the college. I walked in an asked for a free account, and they asked me which programming language I would be using; BASIC or APL. I asked what APL was and they said it was for math and science types and I knew that was the language I wanted to learn. I used APL for 8 years, but found that switching to "structured" languages difficult. I finally sat down and learned 6502 Assembler. Once I understood machine level programming, then learning C, FORTH, and Pascal was much easier. Since then I've learned, in no particular order: C++, Smalltalk, Java, Javascript, Fortran, Clojure, OCaml, Dylan, Object Pascal, Objective C, Factor, Perl, Python and others I've probably forgotten.

  62. paper tape by BenBoy · · Score: 2

    In the mid 74, in first year algebra, we had a week-long unit in programming using BASIC. The computer was ... somewhere. Our access to it was via a paper terminal with a tape reader, phone coupled modem, you know the drill. I fell in love. Spent any lunches and free periods I could get my hands on writing my very first program (a grand units conversion program) with a basic manual at my side. Can't say I learned in any systematic way; and I'm sure I learned some awful habits that took some time to unlearn, but oh it was magic. Punched cards just weren't the same in '78 :-)

  63. Sam's Teach your self Java in 21 days by Anonymous Coward · · Score: 0

    After I graduated with my CS degree from a decent college.
    I owe 80% of my career to this book.
    --Senior Engineer at FF500

  64. My Brother Taught Me TI 99/4A BASIC by lefticus · · Score: 2

    In ~2nd grade my brother exposed me to programming with doing simple character animations in TI 99/4A BASIC.

    I actually just two weeks ago recreated that experience for the first time in 21 years and posted it to YouTube: https://www.youtube.com/watch?...

  65. AOL progs by schematix · · Score: 1

    Learned by dissecting programs to phish AOL accounts when i was in 8th grade. I was always into the darker side of computers, but i learned a lot. Also had unlimited dial-up since dumbasses would give up their passwords all the time. Now i put those skills towards a positive. I program automation so people don't have to work anymore. They can just sit at home and collect unemployment.

    --
    Scott
    1. Re:AOL progs by Anonymous Coward · · Score: 0

      :) You are my hero

  66. I went to an empowered girls coding camp by Anonymous Coward · · Score: 1

    Now I'm a CEO/Astronaut with a townhouse and pink convertible.

  67. In the 4th grade by Anonymous Coward · · Score: 0

    When I was in the 4th grade I started to read a BASIC book from my dad's bookshelf and typed in the programs in Omikron BASIC on an Atari ST.
    Years went by and I switched my primary programming language from Omikron BASIC to GFA BASIC, to MSVC++ 1.0, to DJGPP, to GCC on Linux.

  68. Rodney Zaks' "Programming rhe Z80" by UpLock · · Score: 1

    ...and 90,000 hours practicing. Still learning.

  69. Way back by Dunbal · · Score: 2

    When the world was young and the dead sea was only sick, it was easy to Ctrl-C or Ctrl-Break your way out of games that were written in BASIC/BASICA and just do a LIST of the game's code since games usually shipped in code not in binaries. It was a heck of a learning experience - all those mysterious peeks and pokes made you want to learn more.

    After that it's just a case of getting your hands on a copy of MASM, Turbo C or Turbo Pascal and away you go...

    --
    Seven puppies were harmed during the making of this post.
    1. Re:Way back by Anonymous Coward · · Score: 0

      temple of Apshai on C-64... totally.

      tweaked the RNG code in the gambling "modules" to always win.

      used disk sector editor to modify game save files. Was bummed when "Mail Order Monsters" could gauge the difficulty of monsters to throw at your character based on its buffs (earned or applied)...

    2. Re:Way back by Anonymous Coward · · Score: 0

      Yep, Turbo Pascal 5.5 on an IBM XT was my introduction.

    3. Re:Way back by thinkwaitfast · · Score: 1

      Temple of Apshai on a trs80 was the very first time I ever saw a computer in person. It belonged to my friend's dad. We played that game all the time, then stated modifying it :)

  70. High School TI-85 + Pascal Class by Anonymous Coward · · Score: 0

    Program math and physics formulas in BASIC on TI-85, and created Space Invaders and Worm in Pascal. Good times.

  71. Apple ][, Imsai 8080, and Creative Computing mag by glarsson · · Score: 1

    I started in BASIC on a DEC mini-computer in 5th grade and was quickly smitten. Soon I subscribed to Creative Computing and typed in almost every program in the magazine. Next I was played around with assembly on an Imsai 8080, then I got my own Apple ][+ (I splurged for 48K RAM) and used BASIC, 6502 assembly, and Pascal.

    The Imsai 8080 was a great way to learn how computers work under the hood. I remember debugging and patching programs (painfully!) through binary LEDs and toggle switches. Being able to see the address and data buses in binary on the front-panel LEDs was invaluable. The dedicated single step switch was cool too.

    The Apple ][+ manuals were helpful too, especially the monitor ROM assembly code and motherboard schematics. I pored over those and gradually understood more and more.

    I never worked on cars, but I imagine programming those early computers was like working on an old VW Bug. They were simple enough that you could work on them yourself and learn how the whole thing worked.

  72. I don't code by myowntrueself · · Score: 3, Informative

    I hate programming/coding. Trying to think how to write a program makes me feel disoriented and nauseous.

    In the various 'autism' tests I've done I've come out as massively 'heteronormative', this may be connected.

    And I certainly wouldn't want to force my kid to learn to code, especially not as young as 4th grade. I'd find that almost as disturbing as forcing him to do religious studies or gender studies.

    Don't make coding compulsory, it suits a particular kind of mind. First let the mind develop, find what it likes to think about, then get the kid to learn into those areas.

    --
    In the free world the media isn't government run; the government is media run.
    1. Re:I don't code by EnsilZah · · Score: 2

      So how is programming different from any other subject a child learns at school?
      Or do you believe that a child should have had prior experience with writing or math or sports before they choose to have it taught to them at school?

    2. Re:I don't code by Anonymous Coward · · Score: 0

      Something tells me that if you needed an autism test to tell you that you're "massively not gay," then you might be more than a little gay. You might want to look into that.

    3. Re:I don't code by Prototerm · · Score: 1

      This is why computer programming in school needs to be carefully targeted and introduced, not applied to every single student like history or math. As I've stated elsewhere, programming is art, not science. You don't require every last student to be a musician, so why require them to be a programmer? You want to expose every student to some sort of music, just in case they might like it and be good at it, but not everyone's cut out for it. Good programmers think differently from other people. They find the challenge of "thinking like a computer" isn't a challenge at all, but comes naturally. In the words of an old pop song by Al Stewart, "If it doesn't come naturally, leave it."

      --
      "My country, right or wrong; if right, to be kept right; and if wrong, to be set right." --Senator Carl Schurz (1872)
    4. Re:I don't code by myowntrueself · · Score: 1

      So how is programming different from any other subject a child learns at school?
      Or do you believe that a child should have had prior experience with writing or math or sports before they choose to have it taught to them at school?

      Should it be compulsory for every student to learn to play a musical instrument?

      --
      In the free world the media isn't government run; the government is media run.
    5. Re:I don't code by wertigon · · Score: 1

      Not everyone is cut out to do Linear Algebra or Calculus either; that does not mean learning how to multiply and work with fractions is a useless skill to have.

      Learning the basic foundations of programming teaches you so much more than just programs - it teaches you how the computer actually *works*, and it teaches you how you can use things like regular expressions to automate certain tasks.

      Even if you will never code a single line ever again, the knowledge you get in general is invaluable in a world where computers are everywhere.

      --
      systemd is not an init system. It's a GNU replacement.
    6. Re:I don't code by EnsilZah · · Score: 1

      It was mandatory at an elementary school I went to for a year, I didn't even get to pick the instrument because I moved there at the start of the year and everyone was already assigned.
      I haven't played the instrument since and have very little memory of the whole thing, but I don't see any problem with the concept.

  73. Good ol Tandy 1000 by TheoMurpse · · Score: 1

    Dad brought home a Tandy 1000 he bought at Radio Shack for who knows how much money. I started fiddling around. Back then it was impossible to accidentally break things on a computer because it was all CLI.

    Somehow I found some BAS files on the system and a BASIC interpreter. Put two and two together and started reading and modifying. I was about 4yo or so I think (I was reading by 3).

    A couple systems later, QBASIC, AOL, and I was downloading games like Killer Pong or something like that, reading the code and modifying those. Then my dad brought home Visual C++ and books on it that he took from work. So I did that. Then C++ classes at the local community college.

    Then in college, PHP to make dynamic websites. Then SQL and Python. JavaScript was somewhere in there, too.

    Now I'm the rare corporate lawyer who can code well.

  74. Re:2 week FORTRAN short course at JC. Lied about a by Anonymous Coward · · Score: 0

    I can spot the potential future programmer among 10 year olds playing.

    That's a novel recruiting strategy.

  75. Re: 1st by admin9057 · · Score: 1

    We're still doing this in 2016? Guess I gotta get outs the scripts again.

  76. Electronics by MrKaos · · Score: 1
    I was playing around with electronics (via lab kits) by roughly age 7 then designing schematics and circuit boards by around 12. At that age my introduction to computers was because I implemented logic gates with transistors. The combination of electronics and computers was a wonderous combination for me as a kid.

    However I wasn't supported by my school and even my parents didn't look on it as anything more than a hobby rather than serious career choice that required dedication and focus. I swept floors and saved everything I could to buy computers, kit and tools. TRS-80 Model I and III was my introduction to code.

    I still wonder how much further I would be now if I wasn't bullied for being a geek because I had to waste social time on doing menial tasks to make some money to buy resources that just wern't available at school. At the same time the obstacles that had to be overcome so that I could do what I love, I think, are things that aren't recognized as valuable in many coders careers.

    The thing about imbuing this mindset is that it recognizes that coding is as much a lesson in persistance and determination as it is logic and design. Not everyone is equipped with that passion so I don't think it is for everyone.

    --
    My ism, it's full of beliefs.
  77. Re:1st by Noah+Haders · · Score: 1

    I learned from Logo. Turtle!

  78. Utahcon Starts Coding by admin9057 · · Score: 1

    tl;dr: learned on my own, school didn't offer anything I learned to code around middle school. While the school was teaching me powerful AppleCard "scripting" I was running after school MP3 sharing sites. So I learned HTML and then JavaScript. Went to work for a .com after a brief visit to College (more like horrible trade school). There I did more HTML + JavaScript and branched into PHP. Then things went crazy... Learn VB.NET, and some C and C++, for personal reasons. Started scripting for the shell in Bash. Then more PHP, then Perl, Python and now Golang. I have supported Java, Delphi, and a slew of others most people have never heard of. Learn Golang, teach yourself. Profit.

  79. hammurabi and lunar lander... by Anonymous Coward · · Score: 0

    ... on a PDP-8/E back in 9/71. Looking back, we could do pretty amazing stuff in 4K. Then an RCA -> Univac series of 360/370 clones, then a PDP-11/34 and an Amdahl 370 clone. Boy, were Vaxen nice to play with after all that...

  80. Re:2 week FORTRAN short course at JC. Lied about a by Anonymous Coward · · Score: 0

    "Basic Computer Games" and "More Basic Computer Games" by Creative Computing. I wore out the bindings on those. Thanks for reminding me of them. I do miss the 80s.

  81. AutoCAD by tFunc · · Score: 1

    I started out writing Autolisp programs for AutoCAD, 25 yrs ago. Used several other languages since then.
    I still like Lisp a lot. Always makes me laugh when script kiddies whine about parentheses.
    Boo-hoo-hoo, Johnny. I didn't even have a computer when I started. It was pad and pencil all the way.
    Back in the day, I walked 10 miles to school, knee deep in parentheses. Those suckers hurt like hell, but look at me now.

    1. Re:AutoCAD by thinkwaitfast · · Score: 1

      No computer here when I started either. And while my school was only a two mile walk (really, the bus did not go all the way to my house), I did walk about ten miles to see my very first Amiga whose development I'd been following religiously for a couple of years. There was one shop at the opposite end of the city...and again the bus did not go that far. Oh how I remember that walk...and how disappointed I was when I saw it. Just sitting there with the desktop, no one knew how to use it and I wasn't allowed near it. I still felt I was in he presence of greatness. Jay Miner was one of my heroes.

  82. I didn't by Anonymous Coward · · Score: 0

    I try and try and give up and try, I know so much about it, but I can't do anything, part of it is my fault, part of it is because I think my way is the best way and everyone is wrong and people do things stupid, this means if I see something I don't like I try to redesign it, this is a problem when you want to do anything and you are not that smart and also lazy.

    Maybe someday I will get it, I've been learning for 10 years, I know a lot, from low level to high. I am still waiting for it to click though.

  83. School + my own shtuff by pieisgood · · Score: 1

    I got my degree and went to work, hated the work I was doing and quit the job and spent a year part time tutoring math barely affording rent and every morning I'd spend the day working on software. I worked through several books on game development, c++ development and general development practices. I also did some cs work in computer graphics and some math work in cs at school but those did not help me learn how to write truly functional software.

    --
    Eat sleep die
  84. me me me by MobileTatsu-NJG · · Score: 1

    I'm semi-self taught. I had an Atari computer as a kid and enjoyed fritting about in BASIC. In high school I took a programming course that taught Pascal. Once I became an office drone I experimented with Visual Basic to do Excel macros, then I moved to PHP to work on my website, then Javascript to automate tasks in Photoshop, now I work in Python quite a bit. I'm not a developer, though, I'm somewhat of a generalist scripter (variables, arrays, if/thens, while loops, etc, are practically universal) who uses that skill to make myself and my coworkers more productive via tools/macros in our tools of the trade.

    From that point of view I certainly do understand at least introducing students to programming. (not to an extreme, though). I was forced to take a semester of Latin in high school. I would never ever have taken that willingly, but having gone through it I can see that in another life I might have pursued linguistics. Who knew?

    --

    "I like to lick butts!" by MobileTatsu-NJG (#32700246) (Score:5, Informative)

    1. Re:me me me by NormalVisual · · Score: 1

      I was forced to take a semester of Latin in high school. I would never ever have taken that willingly, but having gone through it I can see that in another life I might have pursued linguistics. Who knew?

      I only took Latin in my senior year of high school, but I really enjoyed it. My teacher was actress Eileen Brennan's sister (looked just like her), and had gone through a bad divorce and would teach us all kinds of hilariously abusive phrases. Sadly, I remember almost none of it but I wish I had taken more foreign language classes earlier.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
  85. PL/1 by hedley · · Score: 1

    Using punch cards on CUNY's 370. Max was about 3 runs/listings per day.

  86. Academics and OJT by Anonymous Coward · · Score: 0

    My first course in computer science started with a few weeks' worth of learning a pseudo-assembly language and then the rest of it was dedicated to FORTRAN; the rest of what I learned was at home or in my office, self taught out of books and manuals. For just learning languages, this is usually sufficient; however, I found out from long experience that being able to think like a computer is both essential and not easily learned. Anyone who thinks that programming can be taught in school with a few language courses is sadly missing this very important fact, just as it takes more than a few years of English to make a good author.

  87. Its all down to the language by nerdyalien · · Score: 1

    Loved playing around with GW-BASIC in early 90s in an early 286 or so.
    Then enjoyed coding in C/C++ in university years.
    Recently re-discovering my passion to program with JavaScript.

    I've tried many other ugly languages, like Java, Ruby, Python, and some proprietary languages came with corporate software. Naturally, they make you start hating programming in general. YMMV on this.

  88. "It's called a process, not an 'amateur-cess'". by Pseudonymous+Powers · · Score: 1

    In most cases, the process of learning to code goes like this:

    1. I got a computer! Cool! Look, I just type in this "program" I got from { a magazine | my brother | the internet | Jim the IT guy } and I can make a blue square dance!

    2. Great, now I wonder what else I can make dance. Oh, and what else I can make a blue square do? And what about other colors and shapes?

    3. Okay, over a two-month period I wrote this thirty-page program that does something I like. I'm going to show it to { the computer club | my brother | the guys in the forum | | my coworkers } and they're going to be so impressed.

    4. They weren't impressed. They just { laughed | grimaced | insulted me in the most graphic terms imaginable | asked me how my real job was going }.

    5a. I quit, forever! Fuck you nerds! [QUIT.]

    OR:

    5b. Maybe I can { read a book | beg my brother | look at a website | study Jim's code } to see how I can get better.

    6. Okay, it's been another two months, but I know a lot better now, and it's definitely way better this time. In fact, it's as good as it can possibly be. I'm confident that now when I show { whoever }, they're really finally gonna be impressed.

    7. [Return to step 4. Repeat forever.]

  89. During College Co-op by bobharris · · Score: 1

    In 1970, during one of my 6-month College Co-op assignments, I took an IBM FORTRAN Self-Paced Study course. When I got back to school, I took more programming courses, including ones that taught different forms of computer math (1's complement, 2's complement, excess-3, BCD), assembly language on a fake computer simulator, PDP-8 assembly, PDP-8 FOCAL, APL, more FORTRAN (it was an engineering school after all and FORTRAN was the language of choice for engineering in those days), etc... And because I ran out of programming courses, I took all the computer hardware courses the EE department offered, including an Analog computer course. And my next Co-op assignment was in the company's programming department. During my senior year I started working part time for a computer manufacturer, writing 80 column card reader/punch hardware diagnostics, running on bare metal (no operating system; your program booted and ran totally self contained). All languages after that were on the job, leaning as you go.

  90. Commodore 16 by Anonymous Coward · · Score: 0

    My dad gave me a Commodore 16. By random I discovered books at the local public library about Commodore BASIC.

    Man, 16 KB of ram! :D

  91. PowerPoint for six years by Anonymous Coward · · Score: 0

    Then I got my first job, so it's Stack Overflow

  92. Analog computer by Anonymous Coward · · Score: 0

    Using a patch panel. Scaling was a bitch. Life got easier (if I wasn't solving DiffEQs) when I learned Basic on the DTSS. Now get off my lawn!

  93. BASIC on HP time sharing system by iamacat · · Score: 1

    There was "offline help" where you pressed a button with a keyword on an information kiosk and it automatically flipped a book inside to the corresponding page. Can't go wrong with BASIC. Not that it teaches programming practices you would want to use long term, but it reflects the essence of how computers work internally without being as intimidating as assembly.

  94. Apple IIe by Ozoner · · Score: 1

    And another who taught myself to write assembler on the Apple IIe.

    Learnt to love the Orcam Macro Assembler.

    1. Re:Apple IIe by NormalVisual · · Score: 1

      Slacker! In my day we did "CALL -151" and entered the hex codes directly! ;-)

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
  95. Crash Course by Anonymous Coward · · Score: 0

    My boss tossed a C manual on my desk and told me to write a parsing program.

  96. 5 years of frustration by Anonymous Coward · · Score: 0

    Had one undergrad c++ course (required for civil engineering degree). It was really intriguing, but at the end I found I had not learned nearly enough to do anything useful.

    Took me 3 years of trying to learn all kinds of different languages using all kinds of tutorials. I finally stumbled upon Python and realized this is exactly the tool I had been looking for. It has taken another 2 years of concerted effort to learn it, mostly on Stackoverflow, but I'm to the point now that I am able to do what ever I need to do.

  97. Re:1st by U2xhc2hkb3QgU3Vja3M · · Score: 1

    comment++

  98. I still think they are the same... by SuperKendall · · Score: 1

    Even just learning to code, if you write anything of any complexity you learn lessons of programming as you need to work with files, structure the program you are writing, and deal with performance... it's true you are not learning what others knew before you, but the coding you do before you really study "programming' reenforces the lessons on programming. By the time I picked up the design patterns book in school, I already knew quite a lot of the patterns named from my own coding.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  99. Entirely self-taught by EdwinFreed · · Score: 1

    My first language was FOCAL, a BASIC variant for the PDP-8. I learned that pretty quickly. I then taught myself PDP-8 assembly language by studying the PDP-8 assembly language handbook. I then wirewrapped my own 8080 system and learned to program that.

    This was in high school.

    Once I got college I taught myself FORTRAN, PDP-10 assembly, Pascal, Simula, LISP, and so on.

    I only ever took one CS class where I learned Algol 60 of all things. Except I attended two lectures at most, so I don't think it really counts as having taught me anything.

    1. Re:Entirely self-taught by thinkwaitfast · · Score: 1

      Except I attended two lectures at most

      Haahhhhahaahah. That's almost my one experience in programming in my C class. The professor was treating it as a weed out class and covered the whole language in the first four lectures (variables, control structures, libraries, libraries and pointers). Out of 400 people in the class, only about 8 of us had any clue what as going on and the prof was replaced by someone who spent the rest of the semester teaching what he had already taught. I assume because I stopped going.

  100. Re:2 week FORTRAN short course at JC. Lied about a by Anonymous Coward · · Score: 0

    I was born knowing how to code. I picked up a few syntax details after birth.

  101. Programming History. by eriks · · Score: 1

    1980ish Apple II Basic -> TI/994A Basic + c64 BASIC -> COBOL/RPG -> 8088 Assembler - Turbo Pascal -> C + *(sh, lisp, (etc.)) -> Visual Basic :( -> Perl -> PHP :( -> Perl?

    1. Re:Programming History. by eriks · · Score: 1

      Wow, I forgot FORTRAN. How could I have forgotten FORTRAN :/

  102. I learned to hate Pascal in University by slincolne · · Score: 1
    I taught myself Z-80 assembler and BASIC at home.

    I learned to hate Pascal at university

    I learned C from the K&R book at home - and loved every bit of it.

    Since I started working in IT I've learned whatever language I have needed.

    Programming requires a level of aptitude, combined with interest and self motivation. Maybe when Teachers work out how to solve that problem they can move on to teaching computer programming.

    I believe however that the increased interest in education (read the greed of educators to chase the latest trends to pull in the cash) will most likely demotivate students best left to themselves rather than bring out the best in them.

    1. Re:I learned to hate Pascal in University by thinkwaitfast · · Score: 1

      most likely demotivate students

      I have great confidence that this is exactly what will happen. On the flip side, computers are so ubiquitous and free for all practical purposes today that anyone with motivation will know far more than the teacher years before they enter the class. When my high school got its first computer, a few students and I would spend all of our time in the computer lab and we taught the teacher what to teach in his class (I don't think we were actually in the class). To be fair he had a math degree but had never seen a computer before.

  103. Both? by Anonymous Coward · · Score: 0

    I spent every hour possible during my youth making code for this or that. Throughout my youth, we were taught LOGO, BASIC, COBOL, Pascal and Assembly in elementary, middle and high school. I got my first copy of Turbo C v2.0 when I was 11 or 12.

    Then there was university level when I learned to program. Using a language is not the same as understanding data structures. Instead of using operating systems, I learned to make them. Instead of using programming languages, I learned to make them.

    I never met a brilliant programmer who wasn't obsessed from youth with either math, electronics, programming or a combination of all of them.

    I have met many programmers I felt were pretty good, solid developers who could dot the 'i's and cross their 't's. But without a passion for it from early on, they never seem to have that thrill or excitement attached to making something new.

  104. HP Desktop Calculator in Physics Lab by Anonymous Coward · · Score: 0

    I grew up reading hard SF like Ringworld, so when I got my hands on an HP-9820 desktop calculator in Physics Lab, I immediately programmed the orbital dynamics of Ringworld's Klemplerer Rosette, and discovered, to my astonishment, that it would work as described in the book. Next, I was "handed" an HP data acquisition minicomputer (via forklift) at Argonne National Laboratory as a summer student, and told to put it together and make it work. A week later, it was running "Trek-73", which I'd listed out on punch tape at school and fed back in to the Argonne computer via tape reader.
    A professor and I soldered together matching "Digital Group" Z-80 - based pre-S100 Bus computers, and I wrote a multivoice music editor / synthesizer in 18 kbytes of hand-coded Z80 machine language. Then, in grad school, I wrote a PDP-11 Assembler / Fortran package for a six-legged robot while also writing spherical trig software on an RCA-1802-based computer for a local surveyor on the side.
    At Bell Labs, I learned C and Unix at "the source." Later, I used PL/M on a Intel Microcomputer Development System to write code for a very early anesthesia monitoring system, and later wrote C code for power meter calibrators and electrical metering data collection systems, automobile diagnostic equipment, and ultrasound imaging systems. Then came ISAM and SQL for telephone call center management software and pharmaceutical laboratory information management systems. Then HTML, CSS, JSON, Javascript, etc. for when I started an internet service provider company with some friends.
    Late in my career, I learned Haskell and F#, to write a mathematically provably correct adverse event handling system in biotech.
    As Heinlein wrote, "Specialization is for Ants" !

  105. How Is This Supposed To Work??? by Anonymous Coward · · Score: 0

    If Apple wants children to learn software development in school, they really should deliver a good full-stack software development environment that runs on their iPad platform. Does Apple really expect kids to write programs for their iPads by tethering them to a Mac running XCode???

    1. Re:How Is This Supposed To Work??? by Anonymous Coward · · Score: 0

      Steve Jobs is rolling in his grave at the thought. One of the reasons why I never warmed up to Apple. Jobs killed Hypercard and a Hypercard sequel for iOS that would have done exactly that! I will never understand Jobs' anti-hacking (the good kind) mindset.

  106. From my father's FORTRAN book by mi · · Score: 0, Troll

    I never saw my first program run. I wrote it for our astronomy teacher, who gave me the "5" (Soviet system's equivalent for "A") for it — I gather, she was still in college herself. She needed some simple calculation coded — must've been her own class-exercise — and I used my dad's FORTRAN book to write it for her.

    I think, I was 12 or 13 at the time. Formal education — Applied Math — came later.

    STOP
    END

    --
    In Soviet Washington the swamp drains you.
  107. Hardware first, then... by Anonymous Coward · · Score: 0

    In 1975, Kilobaud magazine published a great article on how you could build your very own S-100, 8080-based microcomputer. So I built one. Then I discovered it did nothing by itself. So I built a front panel board (LEDS, switches) and learned 8080 machine code. Wrote my own terminal program that worked with my keyboard and video (to a TV, no less) interface. Wrote cute stuff on that system. Later learned BASIC on a Sinclair ZX-81, also Z-80 machine code. Learned much, much more in the 30 years since. (E.G. 68000 machine code, PLC ladder logic, many dialects of BASIC, various robot languages - SPEL and Fanuc.) Now engineering and programming machines that inspect metal parts.

  108. Taught myself by javacrypto · · Score: 1

    I taught myself with books on programming, and a lot of time. Since I was interested in it, I kept going and learning. Now I'm a full time programmer.

  109. IBM PC BASIC manual - self taught by Tony+Isaac · · Score: 1

    In 1983, my high school offered a "data processing" class through the local technical school. It was basically data entry on a "mini" computer. I finished the class in about 6 weeks, and had nothing to do for the rest of the semester. About that time, the school got their first shipment of the original IBM PC, the ones that booted into ROM BASIC if you didn't insert a floppy disk. The teacher let me take the manuals home to study, and I spent the rest of that semester teaching myself how to write code.

    In college, I was a computer science major. But even then, in every programming language class I took, I taught myself at the beginning of the semester by reading through the textbook.

    Most good programmers I know were self-taught, even if they did take classes in school.

  110. TRS-80 Model I, Level I BASIC by Anonymous Coward · · Score: 0

    Day before Eclipse '79, a bunch of us hopped in a friend's father's brand new pickup truck and drove to Montana to see the eclipse. Friend's father brought his brand new TRS-80 Model I with a whopping 4K of RAM and Level I BASIC (which had only three error messages: "what?", "how?", and "sorry!") along. We read the manual on the way up then stayed up most of the night playing with the thing.

    It's been all downhill from there.

  111. I started on a TRS-80 model III (cassettes) by Trax3001BBS · · Score: 1

    I self taught myself Basic, and was well into Assembly Language when I bought an Amiga that had no working programing language available.

    So while owning the best computer ever made, it cost me programing wise.

    1. Re:I started on a TRS-80 model III (cassettes) by NormalVisual · · Score: 1

      an Amiga that had no working programing language available

      Sure there were - the Amiga originally came with Metacomco's ABasic - it wasn't great, but it was functional, and Metacomco also had a decent macro assembler available when the Amiga came out. When AmigaDOS 1.2 came out, they switched to Microsoft's AmigaBASIC. The Lattice and Manx C compilers came a little bit later.

      Still have my A1000, the Manx compiler, the Metacomco assembler, and the RKMs. :-D

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    2. Re:I started on a TRS-80 model III (cassettes) by Trax3001BBS · · Score: 1

      an Amiga that had no working programing language available

      Sure there were - the Amiga originally came with Metacomco's ABasic - it wasn't great, but it was functional, and Metacomco also had a decent macro assembler available when the Amiga came out. When AmigaDOS 1.2 came out, they switched to Microsoft's AmigaBASIC. The Lattice and Manx C compilers came a little bit later.

      Still have my A1000, the Manx compiler, the Metacomco assembler, and the RKMs. :-D

      I started using the AmigaBasic under 1.2 things that should of worked didn't, time and
      time again.

      It got to the point I was ready to toss the Amiga through a window or wall whatever was
      in front of me - it was at that point I quit trying.

      AmigaBasic was so bad they dumped it for Arex in 1.3.

    3. Re:I started on a TRS-80 model III (cassettes) by NormalVisual · · Score: 1

      Well, I never had any problems with AmigaBASIC, and released a shareware editor for the Yamaha DX-7 synth written in it. It didn't give you easy access to the system libraries, but it wasn't intended to be a professional development environment. AmigaBASIC wasn't "dumped" - it was still being distributed in 1.3, and ARexx was a higher-level scripting/macro language, not a general purpose programming language.

      The point remains that your claim that the Amiga didn't have a working programming language available is provably false. Being unable to use those languages doesn't mean they didn't exist.

      --
      Please stand clear of the doors, por favor mantenganse alejado de las puertas
    4. Re:I started on a TRS-80 model III (cassettes) by Trax3001BBS · · Score: 1

      The point remains that your claim that the Amiga didn't have a working programming language available is provably false. Being unable to use those languages doesn't mean they didn't exist.

      Ok, I'll reinterate.

      There was no programing language I was interested in at the time. AmigaDOS didn't work for me and nothing elebroate, for next loops that showed bogus outputs. No errors or alerts just bad output or wouldn't run when there was no reason for it not. I can't remember any program written (other than it was simple, and a learning exersise).

      I collected Amgia programs (1.2,1.3), a trait learned from the softwareless TRS-80, I did come across an Amiga Fortran language program, never loaded it.

  112. In school, from 5th grade by BenderBendingUnit · · Score: 1

    I'm one of the group that the Slashdot crowd loves to despise - an H1B programmer who grew up in India. But unlike the stereotype that people here like to paint of Indian H1B workers, I'm a pretty good programmer/developer.

    In my school in India, programming was taught to all students as part of the school curriculum from 5th grade. In those days, during the first few years we were taught programming in GW-BASIC, and basic CS principles, binary arithmetic, boolean logic etc.. Towards high-school, COBOL and FORTRAN got added to the school curriculum.

    Once I reached college, I was required to learn the C language during my Bachelors in Engineering program as part of the curriculum. In parallel, on my own time, I also learned OOP and OOAD principles, Java, and some VB, SQL and C++ by the time I graduated from college.

    Once I graduated, I moved to the US on an H1B visa, and have been working here as a Java developer for more than a decade now. During that time, I've picked up a bit of few other languages, such as Perl, Python, LISP & Shell scripting, though I really wouldn't call myself fluent in those languages.

  113. BASIC by Khashishi · · Score: 1

    I remember my brothers and I got a magazine called "3-2-1 contact" that had some source code to some BASIC games. These were short programs that we could type into a GWBASIC interpreter and play. The syntax was easy enough to follow, even without knowing BASIC. At first we just typed the programs directly into GWBASIC, but then I started playing around and wrote my own crappy games.

    Later, got a new computer with MS DOS 5 (I think) which came with qbasic, and qbasic games "nibbles" and "gorillas". qbasic was a lot more advanced than gwbasic (it had subroutines!). I started messing around with the source code without really knowing what I was doing and made weird things happen in the game. But I eventually figured out how the programs worked.

    I got a copy of Turbo c. My brother got a book, Secrets of the Game Programming Gurus, and we both read through it and worked on some simple programs. We started working on this bigger game project which was supposed to be like a cross between Civ and Tank Wars. We put a lot of time into that and made a simple graphical interface and scrolling tile map, and a combat minigame, but never finished it.

    In high school, I got a TI-85 graphing calculator for math. School was really boring so I programmed games on my calculator.

  114. Made a game in Ti82 BASIC by Anonymous Coward · · Score: 0

    It was called "Hick Quest" and was a text RPG about trying to get extremely drunk while fighting mailmen with a 2x4

  115. Ham Radio - Electronics - Coding by lazylion · · Score: 1

    As a teenage ham radio operator, I took the Motorola microprocessor course at Chapman college in 1978 because the teacher was my friend, N5BO. I learned how to code in 6800 machine language and, eventually also assembler. Fast forward to high school's PDP-11/45 and then afterwards, the PDP-11/44 at the Weisman Institute in Rehovot, Israel for the summer and Los Alamos National Laboratory's photochemistry division's Data General Iron.

    The trick was that back then the state of the art of computer programming was so rudimentary that anybody could learn. On top of that, since computers were all designed by electrical engineering majors, all the documentation was written by and for people with such an education and I, having been a ham radio operator since age 13 was one of them, it was very comfortable sliding into programing.

  116. Before I could talk... by Anonymous Coward · · Score: 0

    I was typing code into a computer with no HDD to play games from printouts at about age 1.5-2, I have no idea what the fuck I was doing but my father was able to convey that if I made the squiggly lines on the monitor look like the squiggly lines on the paper I could make a monkey throw a banana at another monkey by completing trig equations (which were just guesses most of the time as well though I gained a rough grasp of a modulus and gravity from that as well as a pretty extreme attention to detail [and probably the source of my OCD] since the go-to solution if it didn't work was "delete everything and start over" for several weeks) and I was set on not coming off as incompetent by asking for help repeatedly.

    I actually started programming in some manner at 8 - making an audio synthesizer that played semi-intelligible music more or less through a manual application of what I now know to be genetic algorithms. From there I mostly dicked around on compuserve, AOL and Earthlink for a few years immersing myself in things like IRC and wherever webrings took me and made a few crappy websites, chat programs and a lot of game of life style simulations and fractal generators until starting on a game in my mid-teens. All in all I had probably a dozen languages under my belt by 18 covering network protocols, web design, genetic algorithms and asynchronous programming concepts.

    Since 18 I've worked between IT and software design - more or less switching from one to the other every 1-4 years when I get bored of doing it as a job, in my free time I work on personal programming projects that are a bit too complex to describe even as a summary that makes any sense in a form post.

    All-in-all I'm self-taught, my programming knowledge of now over 4 dozen languages, 7 platforms and 5 database servers comes entirely self-taught, either from several nights (often without sleep between) doing nothing but sitting in a room alone programming or saying something stupid like "sure, that's easy" at work and then spending the night without sleep figuring out how to do it. I've also never once met a competent formally-educated programmer and I've met tens of thousands of programmers in my career, over a thousand of which I've gotten to know and/or worked with well enough to be certain of that statement with when used as datapoints.

    The most important things for a great programmer in my experience are:
    -Critical thinking: being able to not think inside or outside the box but to define the box is the basis of the whole thing.
    -Attention to detail: being able to hold the whole thing in your head without losing the details is mandatory for good programming, but can be mitigated to a minor degree if you have a great architect at the top of the chain possessing all 3 of these things plus a lot of social ability to manage maintenance-level programmers.
    -High intellect: this really can't be understated, if a person can't comprehend the dataflow in an asynchronous system they will never get outside of a single thread on a single machine without creating bugs, security holes and performance issues and the number of programmers that understand anything about asynchronous logic is abysmally small (even when you discount "web developers" as "users" immediately to try and skew the results toward actual programming competencies.)

    There aren't many good programmers because there aren't many people with these abilities and no matter how hard you hit a monkey with a stick or how many bananas you try to entice it with it's not going to produce Shakespeare.

    The best you can do is present friendly dev tools to people allowing exploration of their interests and try not to crush their spirit as kids with formal education, at least then you won't drive away the capable ones.

    1. Re:Before I could talk... by Anonymous Coward · · Score: 0

      I forgot to mention: a major component is knowing what not to do and why not to do it, as a simple example: you really won't know how to create a "good" multiuser client-server system (even as basic as a chat/IM application) without making a dozen and screwing up a lot along the way. Without those screwups you definitely won't be advancing the ideas in the least and you probably won't have a good grasp on why you are doing what you are doing. Another way to put this: you can teach a person that 2^0 = 1 but if they don't understand what the identity of multiplication is they'll be pretty confused about how you can do something like 2^0+2^1+2^4 to get the bitmask 1011 (or they'll just accept it as fact without understanding why it works if they're too incompetent to even wonder about why something raised to the zero is 1.) Programming inherently covers much more complex subjects, the vast majority of which have the same exact sort of nuances.

  117. QBASIC by Ecuador · · Score: 1

    My sister came back from the states with an IBM PS/2 in 1992, which was my first ever contact with a PC (or home computer in general - except a couple of Captain Blood sessions with a friend's Amiga). I quickly discovered it can play games and that you had to learn a bit of DOS to get many of them to play and while looking into this DOS thing I came across QBASIC. It had a function reference so I taught myself, my first notable programs being a game (a bit like gorilla, but with tanks viewed overhead) and a simple solar system simulator, both of which, quite predictably, were using a lot of GOTO statements. Oh, and no subs, I found out about those a little later (the QBASIC help was not a teaching tool). It's been about 20 years since I last touched BASIC, but I have fond memories ;)

    --
    Violence is the last refuge of the incompetent. Polar Scope Align for iOS
  118. High school by Anonymous Coward · · Score: 0

    Basic, Pascal, and Wordstar 2000 show codes :-)

    University took Fortran, C, etc. learned bash, learned assembly as well.

    Now I do data science and AI.

  119. Byte by Anonymous Coward · · Score: 0

    My first attempts were copied from Byte Magazine in 1974, implemented on a PDP-11. The Chase game was especially good at wasting greenbar (no video).

  120. First a VIC-20 then three C-64s by gukin · · Score: 1

    I conned my parents into buying me a VIC-20 with 3.5 KB of RAM, then I saw the wonders of the VIC-20 Super Expander which pushed my mighty computer to 8K of memory and gave me some astonishing graphics which include lines, circles, points and fill. Later I got a C64 and the world was my clam, I got the C-64 Super Expander and was horrified to see that I went from 38K to 30K but the High Res graphics were amazing; imagine 320x200 pixels, amazing.

    I stuck with my C-64s until college at which point I got an Amiga 500 which had some motherboard problems, I traded it for an Amiga 2000 with an IBM bridge board which allowed me to run a gigantic 20 MB HDD which I split into three parts, the DOS 3.2 partition which allowed the whole HDD on an Amiga to work, 10 MB for Amiga stuff and finally 5MB for Minix. I spent most of my time in Minix, I had VI, and cc which allowed me to explore lots of stuff although the eye candy of Amiga was compelling.

    After college, I got a job at a terrible military contractor and had the pleasure of using SCO Xenix (yes THAT SCO) which was still in the terminal (80x24) setup but was able to run on a 486 with some pathetic amount of memory and a 20MB and a 40MB disk. From there, I started working with SunOS systems and SGI systems and learned to program GUIs with Motif, I got to know the wonders of X11 and graphics under Unix.

    I later got a job at a Utility writing Motif GUIs and Unix applications for some fairly interesting scheduling systems on AIX, and eventually Linux.

    Fast forward to 2016, those same Motif GUIs and applications are now running on AIX 7.1 and Oracle 12c with all new hardware, the same codebase that started life 20 years ago is now running on all new hardware and third party software. Happily I've never had to deal with any Microsoft stuff during my career: Commodore to Amiga to AIX to Linux.

    I doubt many have had a career like mine that had the same code base that began 25 years ago and is almost all still in operation, on modern software and hardware.

    Good old VIC-20 and C64, the best way to start.

  121. Selft Taught by CrazyCiscoDude · · Score: 1

    I've never had any formal coding instruction. I needed a way to perform method "X" for a personal project and grabbed the reference manuals and started programming in Assembly Language for the Z80 back in the day (1986/1987). That code involved controlling 120VAC circuits from a TRS-80 Model IV to make money DJ'ing as well as building laser interfaces that allowed PC to PC messaging via laser interfaces instead of wires. That progressed to learning BASIC on a TRS-80 Model IV, as well as making calls to assembly from BASIC because I was able to perform graphics routines much faster in assembly language.. which progressed to full BASIC... and for S&G taking first place in state programming competitions. Then Visual Basic, Perl, Python... then web languages such as a PHP. I still haven't gotten a good grasp on C variants or Java, which seems a bit silly. Most of what I do now is based on Python in SecureCRT sessions hitting up network gear and pulling data or performing configuration updates. My most recent set of code was in Python to perform code upgrades and QC checks against 190 pairs of firewalls, and all but 2 went great... and they weren't because of the process, they were because a predecessor didn't know how to configure a network switch interface.

  122. Standing at kiosks in malls and department stores by thinkwaitfast · · Score: 1
    In grade school I bought a computer book from radio shack earned from doing jobs around the neighborhood, most of them very sucky. Even though I was not allowed to cross the street, I rode my bike ten miles from home to the radio shack. I spent maybe a year memorizing that book while earning the hundreds of dollars ($948+tax) an 8k computer cost in 1980.

    The computer fad started in the early 80's, so vic 20, atari and ti-94s were sold at practically any place that sold anything (including the produce department at the local grocery store).

    I still did not own a computer so would spend dozens of hours every week making demos in basic and pseudo assembly (via peek and pokes) until I got kicked out. About a year and a couple hundred yard cleanups (in 45degree heat) later I'd made enough to by an 8k atari computer, but my parents wouldn't let me buy it because they were afraid i would take it apart and break it. Back at that time, most people thought you could break a computer by typing some bad command into it. Anyway, after months of nagging, they let me buy it. After that i was rarely allowed to use it and it was a constant major fight because we had only one tv and I was at the bottom of the priority list. So I'd usually have to wait until everyone was asleep before i could use it. And that meant experimenting and typing in programs from magazines.

    I originally wanted a computer to play video games, but discovered that i liked programming more than games and so never really got into gaming other than the technical aspects. I liked to create them, but not so much to play them.

    While taking physics my freshman year in high school, I had the completely novel and original idea of using computers to solve physics problems. That's when I started getting really interested in simulations. With the help of my physics teacher, by the time I graduated HS I had written a program to fly a realistically simulated space shuttle running on a pdp-04. Not real time, but a second by second state simulation where every second you'd be presented with a state vector of a dozen parameters and my program would tell you the commands (attitude, oms thrust, thrust angles etc).

    Oh, and i did lock myself in the bathroom one night and take the comuter apart, but went back together fine. My freshman year of college, i was required to take a course in C, that was enough experience to get me into an internship with JPL where I got to with some of the very top people in the field (of rocket science, not computers). That got me into anther internship, and another and another and so on. I'm really more of an engineer with a science education and have never had a class in programming other than the C class and it was only 1/3rd of a 3 hour class, the other 2/3rds being drafting and visualization. I started engineering consulting straight out of college because of the non existent job market and recession of 1990. It was the only way around hiring freezes. Mostly do hard real time in operating systems, hardware drivers and system requirements. Started hacking around with linux @1.13, but now mostly a user

  123. Learned coding to avoid manual work by Anonymous Coward · · Score: 0

    Picked up Basic, then IBM/360 BAL then Fortran, then PL/M PL/1.

    circa 1978

    It all started with a design class that asked undergrads to find new Penrose patterns by cutting out and pasting Penrose tiles into new symmetries. Caught wind of the professor's "long term" plan to replace undergrad labor with a IBM/360 time share program. That route seemed more attractive than construction paper and Elmer's glue.

    I am a programmer because I tried to avoid manual work.

  124. At School by Anonymous Coward · · Score: 0

    I'm probably the only one on Slashdot that learned at school, Sure when I was a kid I started messing around with .bat files to get my video games to work and that got me more interested in how computers worked and how to program. But I didn't do anything more then that until I went to a stupid learn web programming summer class while in middle school around 1998 and joined the school's web dev club. Though we just played Yahoo games. Then took a class in high school, then went to college for a Software Engineering degree.

    So yeah, I'm one of those idiots who went to school to learn. You can beat me at almost any programming puzzle, but the code I finish is nearly bug free and easily understood by my co-workers. Whenever I change a piece of software, it improves. And some of that means designing and coding distributed, multi-threaded systems. Put them in the right frame of mind and they don't need to be difficult. My 60K loans will be gone in 3 years. College was worth it. Plus I learned how to manage finances, dance, give massages, martial arts, build siege weapons, etc... When in college, take all of those little extra classes as you can. It's far harder to gain random skills while working, especially when you're not in a major city. Everything being right there at campus is something most people don't have after they leave.

  125. Univeristy by jader3rd · · Score: 1

    Intro to Computer Programming in University.

  126. Self Taught by mshaver · · Score: 1

    I was studying Astronomy at Harvard and dropped out and came out to Silicon Valley to visit a friend. At the start of 1980 I got a job as a Systems Assembler at Calma a company which made CAD systems. In my year as a Systems Assembler I got a board level understanding of the systems and learned to use the operating system and the CAD software. With those skills I got a job as a Technical Instructor teaching Calma Field Engineers an overview of the system and how to debug the system with diagnostics. I was a Technical Instructor for 2 years and learned a lot more about hardware and operating systems and some programming. The head of the diagnostic software team left Calma to go to a startup called Elxsi. He told them I had already worked for him as a programmer and got me a job there. In my 7 years at Elxsi I worked with the most amazing engineers I have ever worked with and learned about hardware and software from them and their code. From there I was able to continue a career as a Software Engineer to this day.

  127. As a former CS teacher by Jens+Stingray · · Score: 1

    I've taught AP computer science, but I currently work in the private sector, so I've seen both sides.

    From observing my students and observing my coworkers, there is a simple distinguishing hallmark of success: excitement. If you are interested about the subject matter, then you're going to pour yourself into it, care about the picky details, and generally do well. If you're just aiming for a better paycheck, you may succeed, but you're never going to have fun doing it - and it will show in the quality of your work.

    Personally I learned from my dad when I was about ten-years old. He taught me some BASIC, and I kept begging for more. Then he brought home a Turbo Pascal book with a green-and-black chalkboard cover. I still have it somewhere, because it's still the best teaching manual I've ever touched. I wish whoever wrote that thing had written today's syllabus for the computer science classes.

    Carrying it on, with a little help at the start, my five-year old son is programming in Python. He has the excitement. He can read the online manuals and tutorials. The math requirements are too steep for the graphics he wants to pull off, but that just expands his interests. I see him learning, and I see a version of myself starting five years earlier. It would be foolish of me to delay or discourage when the opportunity is now. Am I making a mistake? Time will tell.

    You may be shaking your head right now. Yes, he's just now finishing kindergarten. However, he was reading novels last year, because he learned to read by watching the text on the computer screen and asking questions. Side point: big parental thumbs up to computer games that have lots of text! Have you noticed that most games aimed at toddlers have NO text? Garbage in, garbage out.

    My main concern is that when he gets to formal CS coursework, the bland nonsense that I've seen is going to rip that excitement out of him.

  128. Via Reverse Engineering by Anonymous Coward · · Score: 0

    I feel pretty strongly about the answer to this one; I didn't start programming with anything remotely like a "bottom-up," "start with the basics," type of approach. I got into reverse engineering, in a round-about way, by helping to "hack" the game Diablo. I helped a guy named Raymond Tan - his Diablo trainer is actually pretty famous. I helped him with that, found the experience extremely rewarding & educational - on many levels. Looking at the compiled code, of successful products, taught me a great deal about design, and frankly even the programming - by working backwards via SoftIce (at the time - kernel-mode debuggers aren't nearly as powerful, or even available, as they once were). You basically had to tear pieces of it down; then to really understand it, and know where you could accomplish what you wanted, by modifying values in the running game essentially; you had to sort of use these pieces that you broke it down into to reconstruct the underlying logic. Doing so would tell you where you can use said underlying logic to modify values that interested you (like your hit points, mana pool, or accumulated gold). I think that approach is, in theory, still useful, even today. There are, almost certainly, countless examples of people already having solved whatever problems you encounter; it's just a matter of tearing things apart to find out exactly how they do it. I think the real desire to hack a game, a good kernel-mode debugger, and not giving up, but instead having a real desire to dig deeper, and find the real reasons code - even compiled code - isn't doing what you want, can absolutely be a good start; it worked for me, and that was before I was really even into programming per se; I viewed it more as a way to accomplish whatever goals I had in Diablo, at the time.

  129. Texas Instruments by Khyber · · Score: 1

    TI-BASIC on a TI 99/4A was my first foray into learning how to draw an image on a screen, at age 6.

    --
    Still waiting on Serviscope_minor to wake up to fucking reality and realize that Jessica Price isn't going to fuck him.
  130. taught myself by Tumbleweed · · Score: 1

    I learned my first programming language - Apple BASIC - from computer magazines back in the early 80s, then had it reinforced in 'Computer Math' classes in high school, and learned a few more languages in college (Fortran 77 and Turbo Pascal in classes, and REXX on my own). Then took C in a college course in the mid-90s, plus learned all the web stuff on my own starting in '94. Everything I use professionally, I learned on my own, other than the logic course I took first semester of college (which should be a required course in high school, IMO).

  131. Collosal, stupendous, fatuous error. by Anonymous Coward · · Score: 0

    The Apple CEO argument that (computer programming) code should be a required language taught in the fourth grade is self flattery spoken by a person who believes in "code" because his company's products are based on code. Of course he personally believes what he is saying, but he fails to realize that education is supposed to make men and women capable of responsible free thought.

    The embedded assumption that learning any computer language is the educational equivalent of learning any second natural human language is false because no set of computer instructions and data structures (that thing we teach called a computer language) reveals the vast range of assumptions and thought structures that are revealed when a person learns the grammar, vocabulary and selected literature samples of a second human language.

    For instance, while I got a D in French, I saw in LaRochefoucauld's French maxims a new dimension of thinking that crudely translates as "self flattery". So if you are an American and you thought that was a strange word, you are right.

    Another way of saying this is learning a computer language does not help a human being identify false rhetoric, lies and manipulation from tyrants and those who would enslave their audience. Most of the men participating in the 9-11 aircraft hijackings had "technical educations" meaning training in procedures without learning the liberal arts of spotting the mental enslavement and deception of the hijack event designers.

    So far in American elementary education, learning to use a computer does not involve programming or logic. It is learning the motor skill of pressing the typewriter keys to enter a word in a search box and holding the mouse and associating wrist and arm movements with the motion of the arrow on the screen. Learning those motor skills is within the range of 10 to 14 year old children. The landmark exercise of writing a history class term paper or translating a French or Spanish or Japanese poem is simply made much more challenging of motor skill capability when a computer is required compared to using paper and index cards.

  132. Super Early, like 4 or 5 by GoodNewsJimDotCom · · Score: 1

    My parents saw my love of Pac Man and video games from when I was 3. They got me a computer ti-99 when I was like 4-5. I would type code from magazines on it even though I didn't know what I was doing. When I was 12, I realized I could make all sorts of games with if then, but I couldn't figure out how to do graphics on the c64. When I was 15, I spent like 8 years trying to make the first mmorpg. The first time I quit was because I didn't have socket code for qbasic though the rest of the game was solid. I recoded it in c++, but Ultima Online came out so I quit since I figured there's only a market for one major mmorpg. Been indie devving since. Also have a degree from Carnegie Mellon. But wouldn't you know it that despite coding for my entire life, and having a degree, I can't seem to get employment. I think it is odd that people say software engineers are in demand. Anyway, thank God for indie devving. I don't need some corporation to believe in my skills. I'll just make high quality software on my own.

  133. Worked my way up from the bottom... by dogsbreath · · Score: 1

    Machine code on a PDP-8 at Tech school
    then
    ASM
    then
    MACRO
    then
    FOCAL, Fortran, and Basic along with MACRO-11 (& TECO) and an understanding of the 11's microcode.

    then
    C

    that was magic

  134. Learned to code by reading code by Aethedor · · Score: 1

    I learned to code by taking other people's code, reading it, compiling and running it, changing it, compiling and running it, and so on. I learned what all the statements and functions do by trail and error. By doing so, Iearned how and why things can go wrong. I also learned the importance of readable code, what readable code looks like and what spaghetti code looks like. While I never read any coding-book, I learned what to do and what not to do. This knowledge helps me a lot while working in the IT security business.

    --
    It doesn't have to be like this. All we need to do is make sure we keep talking.
  135. You should ask how should we learn? by iceco2 · · Score: 1

    Since almost no school teaches 4th graders programming obviously this isn't going to be a common answer.
    We should ask hows do we increase programming literacy.
    In the age of IoT and everything having a computer in it, basic programming literacy for the masses is important.
    I have taught first graders to program so 4th graders which don't have a typing obstacle are almost all capeable of learning. It seems a good place to start.
    Starting early has obvious pedagogic advantages. Doing so for everyone can both increase literacy and increase social mobility. I'm all for it.
    P.s My mother taught me Basic when I was six(in 1989).

  136. Ms Hannigan's Ophanage and code house. by Anonymous Coward · · Score: 0

    Miss Agatha Hannigan, a cruel, slovenly drunkard who manages the orphanage would plop us in front of a comadore 64, hook us up to a glucose and caffeine IV, and shove a raw ginger root up our ass. For the next three days we'd code and when we completed a certain number of lines we could unhook and go to bed wheile she went out and cashed her family services check and spent it on booze. Believe me that ginger root made you a sharp coder. Eventually I stubled into daddy Zuckerbucks and he got me to write something that let all the kids tell their stories and post their pictures called Facebook. They all got adopted and Ms Hannigan went to jail after we hosted our Silk Road admin scripts off her laptop.

  137. BASIC on TS-1000 by pruss · · Score: 1

    I got a Timex Sinclair 1000 when I was 10, as well as a simple book about BASIC programming. Eventually, that got upgraded to a TS-2068. There wasn't much family budget for games for me, so I wrote a number of my own. Did a bit of Z80 assembly for better speed. Then when the family got a PC, I learned C, FORTRAN, some Pascal, and 8086 assembly.

    1. Re:BASIC on TS-1000 by Anonymous Coward · · Score: 0

      Timex Sinclair I also got to play with! Wrote a program that printed an ASCII map of the US and asked "Do you want to play a game?" (War games...) Actually freaked my parents out.

  138. 6502 by Anonymous Coward · · Score: 0

    Learned on the vic 20 basic.
    Also learned assembly on the 6502 before taking any courses.
    I spent hours and hours on it, which modifies your brain to think in code.

  139. Re:1st by UnderCoverPenguin · · Score: 1

    Never had the Turtle, but I did learn Logo on the Apple II, as well as BASIC, Pascal, C and 6502 assembly. All self taught. It was fun.

    --
    Don't try to out wierd me, three-eyes. I get stranger things than you, free with my breakfast cereal. --Zaphod Beeblebr
  140. timing is everything by dthirteen · · Score: 1

    Our early programming experiences are dictated by the tech when we first start.

    For me it was basic on apple ][+ in K-6 and then logo.

    The real learning began in Jr. High when I wanted to do more than draw on the screen, and had to figure out how to get user input, and how to use procedures/functions.

    Later in college I nearly quit programming due to a bullshit pascal course that was way to heavy on computer history, with the repeat I got lucky with a professor who didn't spoon feed us, but gave us enough so we could figure things out.

    Those lucky enough to have gifted teachers/professors and/or who have the fortitude to put in the work will definitely benefit.

  141. Self-taught on C-64 by Anonymous Coward · · Score: 0

    Learned BASIC from it, then enjoyed typing stuff in from Compute's Gazette - the assembler hex-listings were tough :). Made a bunch silly games in basic - nothing complex. I remember trying to type assembler directly into the BASIC interpretator and being confused why it didn't work. Still have those magazines and get a kick out of reading them now and again. Took a course in community college in PASCAL and learned about structured programming. Made a split screen clone of a star-trek real time fighting game. Loved coding so much I took FORTRAN and x86 assembler. Then took C and wrote Asteroids using my own 2-d fast renderer for fun. Tried to make a VGA Planets clone game, but it was too big... Got hired at a game company before I ever completed my 2-year degree. Been coding for the last 20 years since.
     

  142. really? by Anonymous Coward · · Score: 0

    code monkeyz'ra'dime'a'dozen. dont fucking care.

  143. VB 4 calculator lesson by Anonymous Coward · · Score: 0

    Self taught until college. Automata and Compilers class blew my mind.

  144. Basic in firmware by mwvdlee · · Score: 1

    I learned to code because my C64 had BASIC in it's firmware and came with a manual that explained how to use it.
    I enjoyed how I could make the computer do things and it just snowballed from there.
    Every single computer in the world should have a programming language as part of it's OS and something that points people in the right direction to use it.
    Windows 10 comes with Visual Basic Scripting (https://technet.microsoft.com/en-us/scriptcenter/dd940112.aspx), but very few people know about it.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  145. Re:2 week FORTRAN short course at JC. Lied about a by dgatwood · · Score: 1

    I can spot the potential future programmer among 10 year olds playing. The future programmer is working puzzles requiring thought.

    Not necessarily. You're not taking into account opportunity and environment with that statement. For example, at ten years of age, I was mostly playing with my friends from the neighborhood, none of whom ended up being programmers. We tended to do normal kid stuff, because that's what everybody else liked to do, and I was fine with that. After all, I had been writing software since about age 7, so by age 10, when I was playing, I was taking a break from working puzzles requiring thought.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  146. Re:2 week FORTRAN short course at JC. Lied about a by Anonymous Coward · · Score: 0

    I can spot the potential future programmer among 10 year olds playing.

    I used to be able to, but my parole officer says I need to knock that shit off.

  147. In 4th Grade by Dracos · · Score: 1

    My entire class learned Apple Basic on Apple ][e's in the spring of 1985, taught by our regular teacher.

  148. Enough about us old farts. What about millennial? by mcpublic · · Score: 1

    I first learned to code by being a guinea pig at a Stanford University educational research lab and a volunteer at a Silicon Valley community computer center, then self-taught on "luggable" computers and programmable pocket calculators lent to me on weekends by a generous Hewlett Packard employee, and ultimately on my high school's PDP-8. I learned about computer science, again self-taught, while working as a "research specialist" (read: peon) at the MIT AI Lab.

    Notice I didn't talk about my undergraduate education, which mostly involved placing out of CS classes, so not exactly a formal education. I learned more from independent projects than anything else. Professional programming I learned on the job--you almost have to, where else are you going to collaborate with other programmers and make things bulletproof? Absolutely, there's GitHub and open source projects. For me, that came about well after I earned my "sea legs."

    But enough about us old farts (and there seem to be a lot of us on Slashdot). How did you millennials learn to program? Where did you find and figure out how to use programming tools/environments? What were your first projects about: The Web, Robotics, Games, something else?

  149. it's not about becoming a programmer by Anonymous Coward · · Score: 0

    We are at the start of a new era of communication. Remember verbal communication is the greatest invention of the homo sapiens, it's enabled today's world. A new era is dawning, the era of commincation with the physical world, using computers. Programming is the language. I envisage a future where we talk to computers in an English dialect (grammer-wise, not phonetic dialect), if-this-then-that style. Hence, I see the reason for learning to program from a young age.

  150. I learned how to code inside a Chinatown kitchen by Taco+Cowboy · · Score: 2

    ... But a large number of professional programmers didn't learn how to code in a formal school program, either because they're self-taught or because they learned on the job ...

    ... Citation please ...

    I can only represent myself, for I ain't 'a large number of professional programmers'

    But anyway ... after I've landed on the American soil as a refugee back in the 1970's the first thing I did was to get a job inside a chinatown restaurant because I didn't have any money

    The work in the kitchen was from morning to late night, no shift, but at times we got couple of 'low tide' hours where we get to take some quick nap

    As I was not familiar with English (I had spent some time in Hongkong before coming to the States, and had picked up really basic English comprehension there) I couldn't understand most of the publications available at that time (except for the trashy Mandarin newspapers/magazines that they were selling in Chinatown) but I wanted to learn more

    On off days I went downtown to some gadget joints, those selling electronic parts, resistors and such, often on 'looksee tour' to get a glimpse of what were there, and over there I picked up some old magazines for cheap

    I couldn't understand 90% of the articles on those magazines but I do understand math --- and it were the math / code tease articles that grabbed my attention and I had to carry out all the 'coding' inside my head (CP/M had just been released but I ain't got the money to buy the mainframe to run that thing)

    Thanks to that computer-less period I honed my ability to 'code in between the ears' and even today before I typed in the first character I already have a 'program' in between my ears wanting to come out

    --
    Muchas Gracias, Señor Edward Snowden !
  151. Re:2 week FORTRAN short course at JC. Lied about a by dgatwood · · Score: 1

    I guess I should finish that by answering the original question.

    At about age 7, I started into the "Teach Yourself BASIC" books and (program) tapes for the TI-99/4A. By about age 9, I knew enough that, while attending a national music education conference with my parents, I spotted the error that some college programmers had made while retyping their music-related BASIC program for a demo, and pointed out what the particular statement should actually have been. They were rather amused. :-)

    In my last year of high school, one of my friends set up an Internet "talker" on a server at the university, and I picked up C on my own while monkeying around with that. In college, they taught us CS using Pascal, which translated pretty easily into a better understanding of C as well. At some point in there, I took a one-semester course that covered the basics of C++ for people who already knew C.

    In other words, I taught myself the basics of programming, plus the basics of device drivers and operating systems concepts (though I did still have to take an operating systems class). My college degree gave me a better understanding of how to structure code to reduce redundancy (e.g. functions, classes, etc.), taught me OOP, SQL, parsers/compilers, etc. My master's degree gave me the opportunity to readily learn about subjects that my undergrad university didn't offer courses in, such as data compression, image compression, boolean logic, 3D graphics, storage systems, software engineering methodologies, etc. Although I probably won't ever do much in most of those areas, the breadth of knowledge almost certainly makes me a better engineer.

    --

    Check out my sci-fi/humor trilogy at PatriotsBooks.

  152. Hexcode by sgunhouse · · Score: 1

    Way back in 1977 or '78, my dad worked for RCA. When they decided to offer a hobby computer (as a kit), he picked one up. At that time, hobby computers came with a hex keypad and you entered two digits (one byte) directly into memory. The manual included a very simple language for writing games along with half a dozen examples such as a clone of Pong..

    The processor was something called an 1802, also called a COSMAC, while the computer as a whole was called a VIP. It had a very simple instruction set, so I sat down with some graph paper and figured out what each instruction was doing.

    Of course, that's a lot simpler when you only have 2K of RAM (and that was expanded from the original 512 bytes) as opposed to today's multi gigabytes, no way to do that now.

    1. Re:Hexcode by tlolczyk · · Score: 1

      I believe it was called the COSMAC ELF the first computer being published in Popular Electronics about six months after the Altair 8008.

    2. Re: Hexcode by sgunhouse · · Score: 1

      The ELF was a different computer based on the same chip.

  153. Re:2 week FORTRAN short course at JC. Lied about a by thinkwaitfast · · Score: 1

    I was born knowing how to code

    My very first pascal program was about 700 lines long and was a score keeping application for a number of schools at a sports meet. I was given the disks (turbopascal + database) the night before and the software was done by the next morning. Prior to this, I'd been programming a few years in BASIC and three months of C. Using ftoc, I've converted and debugged thousands of lines of FORTRAN (and C). As far as procedural languages go, they seem the same to me, I just have to remember the syntax fr whatever I'm dealing in...abut a 15 minute exercise.

  154. +1 by Anonymous Coward · · Score: 0

    Self-taught BASIC on an Apple II

    +1

  155. VIC 20 & C64 Manuals by Anonymous Coward · · Score: 0

    Dad gave me the VIC 20 Book and said, "Make this thing talk morse code." Read the manual, leaned BASIC and 6502 assembly. Next, I upgraded to C64, read that entire manual, and I also learned a lot by subscribing to Compute Gazette and all the other various C64 magazines. Then I got an Amiga and taught myself 680000 assembly and C. Purchased a PC clone and learned FORTRAN, COBOL, LISP, Scheme, ADA, etc. in college. Also programmed 4.2 BSD while in school. Ran Linux when it first came out and delved into the kernel for a better understand of OS'. Taught myself JAVA, javascript, PHP, Perl, AJAX, etc....rest is history. (Shurg.)

  156. 101 Basic Computer Games by David Ahl on an 8K Pet by Anonymous Coward · · Score: 0

    Typing in, making them work on my 8K Commodore PET, then later modifying the programs in 101 Basic Computer Games by David Ahl :

    https://archive.org/details/bitsavers_decBooks10Mar75_26006648

  157. Father taught me, but it's not for everybody... by Anonymous Coward · · Score: 0

    My father, who is a physics professor, taught me computer programming around 3rd grade: BASIC and Fortran and HyperCard.
    He also taught me electronics, mathematics, physics, and chemistry at a very young age, way before it was taught in school.
    All of my birthday presents were science- or computer- related: package of floppy disks, prism, gyroscope, chemistry kit, electronics kit, etc.

    In my school curriculum, the first "computer class" was in grade 7, but it did not involve any real programming, only simple computer tasks such as touch-typing, word processing, and spreadsheets. The first computer class that involved real programming was in grade 11, and it involved HyperCard and Visual Basic.

    I also remember that in third grade, in science class, we were learning how to light up a bulb by connecting it to a battery, whereas at home, I was working with resistors, capacitors, transistors, NAND gates, and flip-flops.

    But my father only taught me this stuff, not my sister, because she was not interested in it. It is not for everyone.

    It is very arrogant and short-sighted for Tim Cook to say that all children should learn computer code as a second language by fourth grade. Just because he is interested in it, and runs a major computer company, doesn't mean that the whole world is interested in it. Most people will need to learn how to use e-mail, a web browser, a word processor, and perhaps also a spreadsheet. But most people do NOT need to know what is a CPU/RAM, or how to code. It is more important to teach them how to avoid phishing emails, and how to avoid dangerous malware on the web.

    And computer programming should NOT be compared to a second verbal language. It is completely different. Tim Cook is speaking from ignorance, not wisdom. He should study bilingualism, and learn a second verbal language himself, before making these statements. My first language was Ukrainian. I learned my second language, English, in first grade. And my third language, German, in second grade. And my fourth language, French, starting in sixth grade. The cognitive process of learning a verbal language is completely different from the cognitive process of learning how to code a computer.

    The way I see it, computer programming is learned in the following stages:
    First stage: procedural high-level language such as BASIC
    Second stage: object-oriented high-level language such as Visual BASIC or HyperCard
    Third stage: procedural low-level language such as C
    Fourth stage: object-oriented low-level language such as C++
    Optional fifth stage: super-low-level language --- assembly.

    Once you learn a particular language at a particular "stage", it is completely trivial to learn a different language at the same stage.
    On the other hand, learning a new verbal language is always a lot of work, and takes a long time.

    Instead of coding, what should be taught in elementary school is CURSIVE WRITING. Back when I was in elementary school, I was taught cursive writing in first and second grade. And later on, as a teaching assistant in graduate school, I had to mark hand-written physics assignments, and 90% of them looked like they were written by a chicken that picked up a pencil with its foot. Tablets and iPads will never completely replace pen and paper, but young kids are no longer taught how to write properly. That needs to be fixed.

  158. Like learning sex. by MouseTheLuckyDog · · Score: 1, Interesting

    Learning about programming is like learning about sex. When people actually teach you, it's an anticlimax.

    1. Re:Like learning sex. by Anonymous Coward · · Score: 0

      ... now I'm worried about mentoring junior colleagues. :S

  159. 1980s: Osborne Computer Books by Anonymous Coward · · Score: 0

    Back in the early-mid 1980s, I read any computer book published by Osborne I could find. About a year into that my parents bought me a Commodore 64.

    After the C64 arrived, there was a phase of playing a lot of computer games, but eventually I started to try my hand at coding simple items that solved particular problems.

    The arrival of books from Osborne that involved "build a robot" also helped enormously, as well as motivating me to develop some basic electronics knowledge.

  160. I was 12 years old by Anonymous Coward · · Score: 0

    I started by typing in programs form the Commodore BASIC manual and modify them. Went on to learn assembly language in 1987 (6502 & 68000) then Pascal in 11th grade. Then I learned C, Modula, Lisp and Java in 1996, C++ and Python in 1998. Objective C, Prolog, etc. came a bit later.

    Given that list you should be able to find out when I really leaned to program - depending on your religion ;-)

    PS.: Turns out you could learn C++ in 21 days (at the time) - if you really really have to.

  161. Code or develop software? by Anonymous Coward · · Score: 0

    Those two are not the same.

  162. Start small, learn to optimize by courcoul · · Score: 1

    An HP-25c in high school. The need to make the most with 50 instructions really made you code carefully. Then off to Engineering in college, where Fortran was inevitable. Short while later, Pascal came along, in an IBM 370 mainframe, of all places, till the Apple IIs came out. Always had the illusion of learning VM/370 assembly language, never got around to it, but did go to 6502, 6800 and 68000. Thanks to Engineering, managed to avoid Cobol like the plague. Later years would bring Scheme, Prolog, Smalltalk and even a dabbling in Ada. Not to mention Rexx and its inheritors, the scripting languages of the Bourne, C, Korn and now BASH shells. Which led to C and the rest of that menagerie. The Swift-y bird is winking at me...

  163. games programming by Anonymous Coward · · Score: 0

    my dad owned an IBM PC it was the mid 80ies. No games allowed because games were "not serious work"... so I set out to write my own games and started to teach myself BASIC... magazines helped, but mostly I used my imagination and just tried until I got it to work. Next learned Pascal for the simple fact that the Borland Padcal Compiler would spit out .exe files, which were way more cooler than those .bas files. And so it continued... I am a senior sw engineer / full stack as they say these days, mostly hooked on large scale machine learning, oh & btw I got my formal education along the side, too, thank you very much.

  164. Piecewise by Anonymous Coward · · Score: 0

    Elementary school: BASIC on an Apple II, later QBASIC on DOS, lots of messing around with hex editors, DOS scripting, TSR macros
    High School: Formal instruction in PASCAL and DBASE, learned C from KnR book and C++ from something else, did some game programming
    Undergrad: Performance oriented C programming course, data structures and algorithms course in C++, 68K ASM, VHDL, Matlab, Maple, 6502 ASM . . .
    Graduate school: Unbelievably complicated stuff in C++
    Work: Powerpoint

  165. ZX Spectrum, C=64 and lots of books by Flu · · Score: 2

    Before I got myself a computer, I spent a lot of time with my friends', typing in programs from computer magazines. I read a lot of books on computers and programming, and tried to understand their example programs.

    Learned assembler on the ZX Spectrum, got fluent in Basic on the C=, learned Modula 2 on Amiga and finally C on Amiga and some Sun workstations. I did take some classes on Pascal programming in high-school, and in the Uni, we were taught Java and C++, but I consider myself self-taught.

    1. Re:ZX Spectrum, C=64 and lots of books by Big+Hairy+Ian · · Score: 1

      Similar here. Started on my brothers ZX Spectrum typing in games. Then at school writing simple programs (Animation etc) on Commodore Vic 20s & Pets. Then college where I programmed PC's & ICL Mini in various flavors of basic. From there I progressed on to COBOl, Dbase and various 4gl's and thence to C#, Java and Python. Am really enjoying Python :)

      --

      Build a Man a Fire, and He'll Be Warm for a Day. Set a Man on Fire, and He'll Be Warm for the Rest of His Life.

  166. By editing game code to give me more lives... by Anonymous Coward · · Score: 0

    M$ had these QBasic games, which were open source, ending with .bas. I "Enter" on them to start play, and I simply F4 in Norton Commander, and saw that these have some code. Why not to change it? And it was circa 1993.

  167. Batch files by Anonymous Coward · · Score: 0

    Every copy of Windows has a command prompt which will let you write and execute batch files [wikibooks.org]. Not that I'd recommend that as a way to learn programming, but most of the functionality is still there. Just not in a popular "language".

    I had learned to code Pascal at school at 15yo. But that was therorical programs.

    Once I got a PC, this is batch file programming on MS-DOS that gave me immediate rewards and pushed me to program more for myself. It also gave me a different view of how to program a machine. Pascal was about static typing, compiled source. Batch file has a single data type (string), is a dynamic language without variable declaration.

  168. Duh by Anonymous Coward · · Score: 0

    Self-taught BASIC, Pascal, C++, Assembler from age 8 and onwards. Books on these topics were invaluable because, no internet.
    Knowing these languages, skipped classes in CS college and played MUD. Learned LPC and created areas and enhanced core code in the MUDlib.

    In my experience, those who learnt programming "formally" in school, were often the worst coders. It's like trying to learn a foreign language formally. Having practical experience, be it from TV or trips, is crucial to become good enough to speak and use the language fluently.

    Of course, clueless people now have prescriptions on how to make programmers out of people. All the while driving such activity away by making new patents, extending copyright laws and hindering a culture of sharing and progress. Keep raising the bar and providing people with toys instead of computers, the consequence will be mindless consumerism and in the end, slavery. Oh wait, we're already there now..

  169. Re:1st by Hylandr · · Score: 1

    Lol No you didn't!

    --
    ~ People that think they are better than anyone else for any reason are the cause of all the strife in the world.
  170. Spent a summer learning BASIC by Mark+Pitman · · Score: 1

    Got my Apple ][+ in June and spent the summer learning to code in Applesoft BASIC. Learned most of it using the tutorial book that came with the computer. Checked out a couple of "101 BASIC Programs" type books from the library too. Also, fixed bugs in a game I bought which was written in BASIC, The Tarturian http://www.mobygames.com/game/...

  171. Learned in the 2000's by jouassou · · Score: 1

    My father gave me a computer with Linux back in 2002, and taught me the basics of how to use a terminal and bash scripting. I'm not sure if this counts as "programming" in itself, but I feel that interacting with the computer in this way was precisely what gave me the programming mentality, and what made me think of programming as something fun and cool in the first place. I then continued learning about Linux on my own, by basically breaking/fixing/reinstalling my system every second week or so for a couple of years. I also taught myself basic Python during this time. Then, in 2009, I finished high school and started university, enrolling in a math and physics programme. I then learned Matlab and C++ from two compulsory programming courses, and learned parallel programming with OpenMP/MPI/CUDA from taking two additional programming courses for fun. I also learned lots of other languages by just playing around in my free time, especially Haskell, Scheme, and Fortran. These days I'm doing a PhD in physics, and mostly use modern Fortran for simulation programs, Python for data visualization, and random Bash scripts for miscellaneous tasks.

  172. I started while in 5th grade by rcase5 · · Score: 1

    My mother got a job at Tandem Computers in 1981. While programming wasn't a central part of her job (computer science was not in her background), it was important that she knew how to do it. So she took a distance learning course from the local community college in the BASIC programming language. The lectures for the course were broadcast on a television station owned by one of the other community colleges. I would sit and watch the show with her, and was fascinated. After she finished the course, I borrowed the book that came with the course and would pour through it. Every so often I would go to work with her. She would set me up on one of the terminals and I would "play"; that is, I would write programs in BASIC.

    By the time I took my first official computer course in junior high school, which ranged in subject matter from application use (word processing, database applications, etc.) to programming in Applesoft BASIC, I already understood much of the programming part of the course.

    But it wasn't until I went to college and took my first course in C that I learned how to properly structure a program. BASIC is fine for covering the broad strokes in how programs work, but it's terrible for learning how to properly structure programs. I also took courses in 8086 Assembly Language and Operating Systems, which changed my world.

    Years after college, I took an extension course in Perl. I've taught myself other languages since then. It's easy to do since the mother tongue of most programming languages today is C; all you have to do is learn the particular dialect quirks of the language you want to learn. I've also picked up SQL as a result of the jobs I've had over the years.

  173. survival of the fittest by Anonymous Coward · · Score: 0

    I started in a non-coding based IT position (such a thing existed at one point) and was handed a problem ("we need a bug tracking system") based on a pile of someone else's shitty Perl code and was told "part of your job is now is to deploy, support, and improve this". I said "but I don't know how to code." Response was "read the documentation and learn". So I did.

  174. At my first programming job by i · · Score: 1

    1979 i did a test and was employed as a programmer at the Post Office in Sweden. (I had no knowledge about programming except some theoretical but there was a lack of programmers at that point in Sweden.)
    The computer was an IBM mainframe and the lang was COBOL and assembler.
    Learned COBOL by a self study course and the rest by experience.

    --
    Mundus Vult Decipi
  175. 100 Percent Self-Taught by Prototerm · · Score: 1

    Bought a C-64 and 1541 disk drive back when they first came out and taught myself BASIC and Assembly Language with the help of books and articles from RUN magazine. Eventually wrote a few articles and programs (Runterm was one of mine) for RUN, as well as a couple of small commercial programs (Colorez was one of mine as well). Even to this day, I'm at my best when I teach myself a new computer language and start using it for a project, whether that language is Object Pascal (aka "Delphi"), C++ or C#. Today, I do work for state governments and large international corporations. I think I've got the whole programming thing down.

    Programming, IMHO, isn't science. It isn't math (I'm terrible at math), it's art. You can't really learn to be a musician or an artist in a classroom. Sure, a teacher can instruct you in the techniques, but your heart and soul has to be in it first. Oh, sure, expose kids to computer programming early so they can see if it interests them, but don't ruin the experience by reducing it to "name the five ..." or "what is the difference between ..." questions. You either learn something to know and master it, or you learn something to take a test on it. You can't do both.I know that from personal experience.

    --
    "My country, right or wrong; if right, to be kept right; and if wrong, to be set right." --Senator Carl Schurz (1872)
  176. BASIC by Anonymous Coward · · Score: 0

    Lots of people remembering BASIC. There's still a lot of interest in this old language to this day: http://smallbasic.sourceforge.net/

  177. Bought a ZX80, and a copy of Sync magazine by Centurix · · Score: 1

    They had code listings for games. I wanted games really. Then I wanted to change the game, so a learnin' was in order. Initially Sinclair BASIC, but read up on the CPU and learn't Z80 pretty quickly. Carried around a Z80 cheat sheet and wrote as much as I could before upgrading to a ZX81, then a Spectrum 48K. Applied for a few jobs with the hope of getting into places like Ultimate. Ended up getting a sweet paid job working at a PCB manufacturer writing Z80 for test harnesses.

    Picked up 68000 and C. Bought an Amiga and did a ton of stuff there. Joined the demo scene.

    Switched jobs to one making general ledger and debtor/creditor systems for small companies doing more C with a smattering of x86 to fill the gaps. Then hit the 90's and an explosion of Windows work, C++ learning, mix of other languages popping up here and there. Learning other frameworks and libraries, moved around between Borland and Microsoft stuff.

    Finally got on the Microsoft bandwagon, embraced MFC and ATL, then de-embraced MFC and ATL. Learn't a lot about X windows, made it into government defence contracts with stints doing medical imaging work. Lots of standards you have to learn. Started mixing lots of other languages into the mix. Right tools for the job.

    Past 1998 I've kept up with the web stuff, loads of different stack types and tool chains. Went through a .NET phase for a while, more frameworks, diverse languages. It keeps getting better, I love this stuff, learning is a magnificent beast.

    --
    Task Mangler
    1. Re:Bought a ZX80, and a copy of Sync magazine by tlolczyk · · Score: 1

      ATL wasn't so bad it was based on a template trick first mentioned in Barton and Nackman, and then brought to light in a Cope article in C++Report. I did something similar with Corba CCM objects, but Corba fell out of favor before I finished.

  178. Oooh ooh... by Anonymous Coward · · Score: 0

    1988 BASIC ( Grade 2 )
    1992 - Internet access gained, and as a result access a lot of new information.
    1994 C/C++, HTML ( Grade 9 )
    1998 Java 1.1 ( College )
    2001 C++, Perl, PHP, Javascript, Flash, and pretty much everything "web facing", XML, XSLT, etc

    Unfortunately the pace of change in Java, Flash and a few other products that College wanted to teach, rendered most of the College work useless and non-relevant. The only usable stuff was stuff I learned by myself in 2002 when I basically made the existing techs for a service I was using look a bit incompetent. So everything I've done ever since has been built upon stuff I experimented with between 1994 and 1998 (in high school) as the Web was still in flux and web browsers were garbage.

    Today I'd probably recommend making Javascript available as the "language" to learn in primary/elementary school. This isn't to discount C, C++ or something like OBJC, C#, or Swift, which are better languages for building software, but the vast majority of "low-end" stuff can be developed in HTML5 and Javascript without any heavy libraries. Once kids either realize how fun it is, they can learn the advanced stuff, or they can figure out that they really don't like it and probably should stick with spreadsheets (which is often everyone's first exposure to programming if they didn't learn BASIC at some point.)

  179. Re:1st programming. self taught basic in 1976 by gonzonista · · Score: 1

    Oh yeah? Back in my day, we didn't have any of that fancy modem stuff. I had to punch holes in cards and wait in line to run a program. When our school finally got a computer with a screen, it was always snowing. I remember...programming was uphill. Both ways...but we were happy back then. Kids these days don't know how good they've got it.

    --
    If absolute power corrupts absolutely, what does this say about renewable power?
  180. Thanks to a boss from Heck by Anonymous Coward · · Score: 0

    It was the late 70s. My boss from Heck wanted to fire me but couldn't without cause. He literally dropped several manuals, a FORTRAN textbook, some papers regarding FFT analysis, and x-ray film which documented the movement of lead shot on the surface of beating hearts. I had six months to write a program to analyze the motion, minus the noise, or be fired. I felt like a fish that had finally found water. Some helpful people pointed me in the right direction, and my immediate supervisor gave me the space and time I needed to teach myself. For the analysis, I used FORTRAN which ran on CDC Cyber. Of course, programmers were not real contributors, and I was not listed as co-author. I met the deadline with ample time to spare. After that, I remained useful by writing routines for other projects. Since time on the CDC was expensive, I wrote smaller programs in FOCAL which ran on old PDP-8 with a paper tape reader. Using my new skills, I soon found a better position elsewhere, so my boss from Heck was rid of me after all.

  181. PDP 8 by phil31753 · · Score: 1

    Had to load a short program to read paper tape using switches on the console. If you were lucky the core memory would still contain the program when switched on, otherwise you had to reenter all of the steps. Load binary loader program from paper tape. Then load Focal a programming language similar to Basic. Then write my stock market game in Focal using a teletype console. I still have a printout of the source code for the game. I was hooked and still am all these years later.

  182. 1980's elementary and self taught. by Anonymous Coward · · Score: 0

    Back in the 80's my elementary school had a guy come in with a black and white TRS-80 computer. That caught my eye and eventually I learned on that and a Sperry desktop PC with 2 5.25" floppy drives. Finally my parents bought me a TRS-80 Coco2 and I started coding like crazy on that. Even made my own Light Cycles of Tron game. Had Basic and Cobol in high school and then went through college for a degree. Those were the days.

  183. C64 by Kjella · · Score: 1

    Got a C64 when I was 7, sure it also had games but:
    10 PRINT "HELLO WORLD!"
    20 GOTO 10
    RUN

    I found the way I could manipulate the computer to do stuff to be just as fascinating as the games I could play. I remember even in second grade I knew 2^3 = 2*2*2 = 8 which I don't think school covered until 7th grade, because I'd read the manual page to page to figure out what it could do. I primarily read the instruction manual in Norwegian but with the programming language itself being English and a few things being lost in translation and all the games being in English it was also a huge motivation to learn a second language. And the games I played weren't all that impressive, many were one skilled man in a garage.

    IF-THEN-ELSE taught me a lot about binary logic, trying to make a balloon sprite move across a 320x256 screen where the first 256x256 was accessible one way and the last 64x256 a different way was my first introduction to binary. I remember finally being able to make a balloon go smoothly on the diagonal from one corner of the screen to the other and I was so proud. It was an awfully lot harder than it sounds because of the programming model.

    --
    Live today, because you never know what tomorrow brings
  184. How do you learn anything? by Anonymous Coward · · Score: 0

    You learn to write code in the same way you learn anything else. I really don't see the mystery here, except maybe that people want an easy answer.

  185. To code or not to code.... by golfnomad · · Score: 1

    I was taught assembler (360);PL/1;Fortran/WAT4COBOL;RPG1 in College and picked up BASIC on my own.I won't agree that everyone should learn how to code, as I watched several classmates STRUGGLE at even the most basic routines (read/write). I found that one needs to have an aptitude for coding and a passion for it, otherwise it can be a very painful experience. If someone is curious and wants to learn more about it, by all means be supportive and encourage them, but to *force* someone to code, not to sure about the success rate of that method, IMHO

  186. Our computer came with a manual explaining BASIC. by gsliepen · · Score: 1

    I must have started around when I was 5, when my parents borrowed a Commodore 64 from our library (yes, they were very progressive and lent out computers in those days). They also had some programming books for kids in the library. But then they bought a Schneider Amstrad CPC6128, and it came with some games and a word processor. After getting board with the games, I read the manual that came with it. Those days, computer manuals were quite extensive. This one described every part of the excellent BASIC interpreter that came with the CPC6128. So then I started programming myself. At 11 or 12 years I wrote a multiplayer game for it with background music, in plain BASIC. Later my parents got an 8086, and I got an Atari ST. I learned various forms BASIC (GWBASIC, QBASIC, Omikron BASIC, GfA BASIC), as well as Intel 8086 and Motorola 68000 assembler. When I started studying, I got an PC with an AMD k6, with Windows for about a year, then I installed Linux (from the excellent Infomagic CDs) and happily used that ever after. I got a copy of K&R second edition, and started programming in C and later in C++, although I also learned some Perl, Tcl, Python, Delphi and Java along the way. Virtually everything programming related I taught myself.

    Although I did attend mandatory programming classes at the university, I can only say that they teach you the bare minimum. But if you have a strong interest in it, and some good resources, you pick up programming much faster by doing it yourself. You become a really good programmer once you write a program that other people start using, and that has to install itself properly, do error handling correctly, and so on. Last but not least, keep improving yourself, look at what other people are doing, participate in the programming community.

    A final note: I've seen people from all kinds of life discover programming. Some stumble over it accidentily ("oh wow, look at all those things I can do with Excel macros!"), some have a hobby that inspires them to code. If they are truly motivated they can use very difficult programming languages. But it also greatly helps if the barrier to entry is very low: having the tools preinstalled or very easily obtained, have good documentation, an accessible community. I particularly like the Arduino; even though you are programming C++ on an embedded system, the tools are just one "apt-get install arduino" away, the documentation keeps things very simple, and you can just do a few clicks and load an example program in the editor and get going.

  187. Multiple Sources by schja01 · · Score: 1

    Several Community College courses. Lots of book reading. Some OJT.

  188. Learning by Anonymous Coward · · Score: 0

    Learn to code on the job

  189. Self taught by Frans+Faase · · Score: 1

    I learned Algol 60, FORTRAN, and Lisp while still in high school. Writing programs out on paper before traveling to a near by city by train to make punch cards and run the programs, often going home with s stack of listings to study the results. Only in second year of university did I learn something truely new: currying and lazy evaluation. More details.

  190. Pointless excersice. by CptLoRes · · Score: 1

    All this "people must learn to code" stuff is such a load of self serving crap. It's obvious what the plan is, flood the marked with cheap 'coding' labor for the large software corporations to gobble up. And if a large crowd of at best mediocre 'coders' is what the world needs, fine go ahead. You usually end up getting what you pay for.

  191. On pdp10, as all CS was done back then by Anonymous Coward · · Score: 0

    I was given a modelling program, had access to a KA10 (pdp10) and got out the pdp0 BASIC manual, started writing code. Found out how to use an editor program, how to store and retrieve DECtape files, etc. Later had to extensively modify a pdp9 program which I did with processor manual in hand, toggling in instructions and saving to high speed (not all that high!) paper tape. A bit later I was able to get hold of a copy of KM9-15 and some language processor programs (FOCAL among them) and the assembler and wrote my own codes to access our (somewhat oddball) peripherals.

  192. I wanted to understand code by Opportunist · · Score: 1

    Back in my days, without Internet and a sensible way to download stuff, magazines with code listings were popular. You would buy them and then painstakingly copy code. TYPING IT. Reading it from the magazine and typing it into your computer. Pages and pages and pages of gibberish. Or, rather, gibberish is what it appeared to be for you if you didn't understand it. Imagine copying a Chinese newspaper by hand.

    Many, many computer users did that. Some, like me, didn't want to be copists anymore but actually wanted to understand what they did there. Because that not only improved the quality of what you did (like someone who copies a book being able to read usually leading to a better quality of the copy, for he can proofread his own text), I wanted to know what the people who made these programs did, I wanted to understand what was going on, and most of all, I wanted to be able to do this myself and create programs myself. First by adapting what was there to suit my needs, later by defining myself what I want and creating something new.

    That is the key element here: WANTING TO UNDERSTAND. Thousands, if not hundred thousands, copied that code not wanting to understand it but only to have the end product. Only those that wanted to understand went beyond this.

    And this is why teaching this to every schoolchild is an exercise in futility. People who do not WANT to understand have no chance understanding it.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  193. Self-taught by Anonymous Coward · · Score: 0

    I learned by looking at other people's programs and snippets of code . First, I had to have a goal or program I was in need of. I kept doing the same tasks over and over again at work and thought there has to be a better way. All the computers at work had Autohotkey installed which we used for shortkeys to enter our login/password automatically. I looked into Autohotkey and it is much more powerful than using for shortkeys. After following some of the examples in the forum and manual I was creating programs to automate my tasks at work. Autohotkey and AutoIT are very EZ to learn and start with. Later, I moved into Javascript and using the DOM to manipulate web pages at work to do my bidding. Javascript for me is more difficult to learn but I learned it the same way by looking at other people's code. Usually, you just go to a webpage that you want to know how they did that and look at the source code or even download the page to your computer and start changing the code to see how it works and google what you don't understand..

  194. Byte Brothers by Anonymous Coward · · Score: 0

    A particularly wonderful teacher at my tiny regional primary school (20 children in the whole school) brought me a book called The Byte Brothers, which I read and learned from, in the mid 1980s, as a 10-year-old kid, when there was one computer in the entire valley, right there in our classroom. It was an Australian-made 'Microbee' computer and it ran some kind of BASIC, and was more than enough to capture my attention!
    http://www.amazon.com/dp/0553244213/

  195. To code or not to code - that is the question. by Anonymous Coward · · Score: 0

    I learnt to program in the mid 70's from a friend who was attending University while I was still at high school. He taught me Fortran and Pascal, and soon after I learnt C by myself. By the time I got to Uni in the late 70's I was fluent in all things Unix. Since then I've branched out a bit, not only in programming languages and related systems but also in the commercial side. This learning has been to my advantage throughout my life. However, there's one technology that I've never been taught or understood - hardware. Definitely teach young kids how to program, and teach them how to design hardware too.

  196. Because computers are awesome by Anonymous Coward · · Score: 0

    I always found PCs to be pure magic when I was a kid, and, while I was playing games, I always wanted to learn how they operate. At first I was mastering OS, but then I slowly started playing around with editors in games. I especially remember Warcraft 3 because it's editor had some sort of scripting for cutscenes, which I really wanted to pick up, but never really got it. At that time I understood basics of programming. From there it all went downhill. I tried all I could get my hands on and it was loads of fun. Programming was never really taught at my school and university, so I just read books, tutorials, references and slowly taught myself how to code.

  197. 6502 ASM was the tool of choice by Shuntros · · Score: 1

    In the UK in the early/mid 80's we had the BBC Micro which shared the market with the like of the C64 and Spectrum. Pretty standard kit; 6502 CPU with 32k RAM (later 128k on the BBC Master). BASIC was where I started, but it didn't take long to get into writing assembler - somewhat necessary in order to do anything cool like *ahem* copying games which relied on raw sector reads of deleted data on 5.25" floppies as copy protection. Our local radio station even had a computer show on a Wednesday evening where they would play programs out over the air for people to record on their handy tape deck.

    When I started high school they had a whole Econet network built around BBC machines with an SJ Research file server. That sparked a whole new interest and, under the premise of writing a multi-user network game, I managed to persuade SJ to send me a load of very useful documentation. A matter of weeks later I was blowing my own PROMs at home and discreetly slotting them into the BBCs in one of the music classrooms. The docs from SJ were what today's coders would describe as "undocumented APIs", but you would essentially just load up the registers and JSR to a particular address to unleash teenage stupidity with gusto.

    Instead of trying to steer me toward applying my skills in a more constructive manner, my school decided to ban me from using any computer in the school for a year. Being somewhat "on the spectrum" I went a little off-piste at that point and headed off down the road of rock n roll, girls and weed for a few years; until it became necessary to actually earn a living.

    When I came back to computing things had changed a lot and the PC was taking over; it was late 486 and very early Pentium dominating the market which I found fairly easy to slip into. I became relatively capable with a lot of the common languages of the time and whilst I'm decent with x86 it's only on a handful of occasions I've ever needed to write it in the raw.

    I don't work as a coder, but that early experience has been enormously valuable in terms of understanding how things actually work under the hood, being able to turn my hand to most common languages when the need arises, and in terms of the problem solving mentality I learned back in the 80's.

  198. Long hard road with no computer by DeBattell · · Score: 1

    Starting in 7th grade I learned to code from Calcu-letter articles in Popular Science, my "programmable" TI-55 calculator, the description of BASIC from the back of my Algebra 1 book in 9th grade, BYTE magazine in the school library, my dad's Fortran programming assignment from a college class he was taking (punch card era). Problem was I didn't have a computer. When I was a junior in highschool I got my first "real" computer a Sinclair ZX-81 with 1k of ram. When I was a senior in highschool I was able to take a programming "class" with TRS-80 Model III computers. The teacher was a history major. He learned more from me than I did form him. After that it was Pascal as a freshman in college, VAX-C on a VMS system as a sophomore, and finally C on a Unix system as a Junior. I took a networking class as an undergraduate, but had no internet connection until I was in grad school.

  199. C=64 in '83/'84 ... by Anonymous Coward · · Score: 0

    ... because I really _wanted_ to. Cost about USD 2'700 in today's money, really had to lay into mom &dad to get me one. One or two other people in class who were into it, am working in the field today, hence my rather reactive opinion that the only people who should be allowed to program are the once who are really into it. Nothing worse than code by the person who got into it for the money rather than, at least in part, to geek the eff out.

  200. Scholastic MicroAdventure Books by Anonymous Coward · · Score: 0

    Like Choose-Your-Own-Adventure books, but requiring the reader to execute included BASIC programs.

  201. Convoluted Learning - a little bit of everything. by erktrek · · Score: 1

    As a kid felt alone and isolated - not into sports, family issues (divorce/remarry). Computers were an escape, a way to feel "special" and a way of exerting control.

    Dad was into computers through his work, brought home Vic 20 then C64, learned some programming by typing in code. Later assembly to do cool stuff like switch out character sets etc. Had a small job programming menus for touch screens on an Apple ][.

    High School had computers TRS-80s but teacher did not know how to use them which gave us free reign to do what we wanted. Learned some assembly there as well (Block Moves ROCK!).

    Very good community college professor who was "in the industry" and taught (for the time) formal computer coding and design methodologies. I learned fortan & pascal there.

    Picked up more bits of programming (particularly database apps) while working on side projects for various jobs and friends - Lotus symphony! Clipper Summer 87!. First real programming job learned the hard way about business app development - just get it done!! No time no spec no testing! You are a good programmer but not our kind of programmer! You're fired!

    Finally started working at a proper but very small computer firm had a great older mentor who taught me about integrating what I learned in college with the "real world" stuff. The job forced me to work with clients directly, larger scale projects and learn more about "cost" and the "business way" of doing things.

    As others have said - having a personal interest in these things helps keep driving you forward with learning and adapting to new stuff. It's not a job it's a hobby/lifestyle etc. Never stop learning!

  202. Late by Xyrus · · Score: 1

    I was introduced to programming when I was a sophmore in college. There was a course on 3D programming using the new API called OpenGL that sounded interesting.

    Ever have one of those things that just seemed to naturally click for you? That's what it was like. Took to it like a fish to water. Just regret it took me so long. But it's not like everyone or every school had a computer back then.

    --
    ~X~
  203. From my father, an amateur genealogist by Anonymous Coward · · Score: 0

    My father, having used IBM PCs at work back in the 1970s, spend a small fortune to buy the IBM PCjr when it became available, and tricked it out with a RAM upgrade, hardware-cartridge BASIC, a second (gasp!) 5.25" floppy drive, so that he could write his own software in BASIC. He still uses that program today, thanks to my finding various ways to allow the video modes he hacked to continue to work on modern Windows systems.

    I was an eager subscriber to the magazine 3, 2, 1 Contact, which had BASIC programming samples in the back of the issues for various games and stuff. After entering them in (usually slightly incorrectly) I'd hack them to do various other things.

    I distinctly remember typing "debug" as a command into the BASIC interpreter because I thought it would find the bugs for me. I discovered the command line, learned DOS (about a day, right?), and I was hooked. Formal education first in C at the local community college concurrent with BASIC in junior high school, then Pascal in high school, and I picked up Perl in a self-directed small-projects class in 1995 where I learned about this cool new replacement for the Gopher protocol.

    I now write Java web applications professionally, and my 7 year old is writing toy programs in Scratch, wanting to know when he can have his first computer of his own.

  204. Learn to code by Anonymous Coward · · Score: 0

    Self taught BASIC on a timeshare system in a Bell Telephone engineering department, then picked up FORTRAN to write some engineering apps, then XEROX assembly for a new job, then IBM 370 Assembly as an MVS systems programming manager, then C to move into UNIX security ...

  205. Started with spaghetti FORTRAN by RNLockwood · · Score: 1

    I missed an opportunity to learn coding in 1961 as the computer was 30 miles from campus, I had no car, and was taking semester hours of math and physics. Then I was accepted for graduate school in 1975 and decided that since my goal was to become involved with science and research I should acquire skills to handle data and signed up for FORTRAN.

    FORTRAN was offered by the Business department and 'goto' was heavily used. It appeared that only two or three of us in the class of about 30 'got it' but I might have been biased since I was 10 years older than most. Debugging was a bitch. Once the code was key punched the packet of cards was placed in a container embedded in a wall; at some point the computer operator would run the packet through the CDC 6000 series main frame (60 bit words) and then the output wrapped around the card deck and put in a pick-up pile a few hours later. All this to find syntax errors! I wound up doing my coding from 9pm or so until 2am as wait times were substantially shorter. I made friends with the operator and learned how to run the main frame.

    About this time a time sharing system using Teletype Model 33 ASR terminals distributed around the science building was installed so I started to use it for my FORTRAN class (slightly different than the CDC) and learned BASIC.

    I was given a 6502 computer on a board designed for engineers could learn how to use the 6502 chip and I/O chips. Input was a keyboard, output a paper tape similar to a cash register tape. I learned some assembly on it but had to purchase a couple of tape decks and build an interface to save and load code in the 'Kansas City Format'. I wrote a version of Wumpas using the included BASIC in ROM and used this computer in a data structures class I took.

    I did take introductory courses in Pascal and C, for instance, but was self taught in C++ and in the last 4 years Java and Dart.

    I read all I could to understand what to do to conceptualize and then start to code projects. Since most the coding I've done is in support of data acquisition and converting raw data into data usable for analysis and display I find that I kind of cherry-pick topics to learn, skip others, and have spotty knowledge of some aspects of the languages I use.

    Programming has mostly been a secondary task in my job descriptions. I think requiring primary school students to learn coding is about as sensible as requiring them to take calculus in order to be accepted in University for Humanities majors.

    --
    Nate
  206. University by utahjazz · · Score: 1

    I learned to code by enrolling as a Computer Science major at University. I had no computer at home. My first exposure to programming, or really computers in general, was in the computer lab's Unix machines. My first CS class, CS 201 or whatever it was, was where I first learned to code. Coding became my profession, and I'm pretty good at it. So I get to roll my old-man eyes whenever I hear that we need to start teaching kids to code when they're 6.

  207. At UCBerkeley, FORTRAN on a CDC6400 by Anonymous Coward · · Score: 0

    I learned on a batch system using keypunch machines and 11x14 line printer output, about 1970.

    I don't believe programming should be taught in schools. Telling a computer what to do has changed every few years. 'Compilers' with AI will revolutionize it again. How do you teach a robot how to program? Programming is the art of saying EXACTLY what ou want.

  208. Depends on the Person by Giant+Electronic+Bra · · Score: 1

    When I was around 16-17 I was excited by computers. Back then it was HARD to get access to one, but when I did I just wanted to make it do stuff, ANY stuff. When we finally got a VIC-20 that we could really do something with, then my brother and I went crazy, and he's 4 years younger than me. We made some pretty GOOD video games and I wrote a few simple utilities. Of course we did simple stuff first, and often just copied demos out of magazines and then learned how they worked so we could do something new with it.

    BUT I don't think most kids are going to get a LOT out of being taught some very simple "move the turtle across the screen" kind of thing in 4th grade. It won't hurt them, but it seems wasteful to spend billions of $ on that when half our schools have paint peeling off the walls and water leaking in the roof.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  209. Vic-20 by bfootdav · · Score: 1

    I was given a Vic-20 by my parents for Christmas one year when I was about 10 instead of the Atari 2600 I really wanted. I did enjoy the game that came with it (Radar Rat Race) but was still disappointed. Later that day I cracked open the manual and began typing in the commands. "HELLO, WORLD!" appeared on my screen. Eh. And then an animated ASCII jumping-jack man. That's pretty cool. And then a program that asks for your age, runs it against several IF-THEN statements and prints out an answer based on your age.

    What a second. What?

    So I added numbers together and did more IF-THEN checks. Holy fucking shit. I realized at that moment that I could do anything with these commands. I could create any program I wanted including games like Pacman. There was no limit. I had the Power.

    So I programmed hardcore for the next 6 years. I became very good in Basic and proficient in machine language. And then I stopped programming around 17. I was burned out and it wasn't fun anymore.

    Eventually I became a music major (composition) and gave up on computers altogether. Then a few years ago I came up with an idea for a super massively large music generating program. While I had forgotten how to program and had no feel for modern technology (when programming) and anything that had happened in languages in those 30 years, I still knew how to think like a programmer.

    I chose Lua for this project (which didn't even exist when last I had typed code into a machine) and have become fairly proficient in it (some 6000 lines of code or so).

    So yeah, entirely self-taught and then re-self-taught.

    I have some huge gaps in my knowledge concerning really cool mathematical algorithms that I'll probably never learn. But I'm not really a programmer. I'm a composer using programming to realize a bigger project.

  210. Started with GW-Basic in 1984 on an 8086 by Anonymous Coward · · Score: 0

    Started with GW-Basic, then moved to C and then to ASM and later to C++ and C#. Coded in professionally ASM for about 5 years. Uploaded apps to bulletin boards. Learned a lot on the subway going downtown to work each day. For me coding was not just something I learned but it was an all-consuming passion. I couldn't get enough of it (and still can't). I used to just blast text to the 8086 video memory address at 0xB800 and watch it display and think that's the coolest thing ever. Coding is difficult. Perhaps others can succeed in it as purely a day job but I cannot.

  211. Take a look, it's in a book by twisted_pare · · Score: 1

    Read a book. A bunch of books, really. For me, first a C++ book in HS. Then many more in college. You see, if you need to master a language, you research the top 2 or 3 books for said language, then read them all cover to cover, spend several thousand hours coding in that language, and then you'll start to be proficient. Copy/Paste programmers are a lower breed in my view. When I conduct interviews and ask any sort of question about bit manipulation, it's staggering to see how few "Senior/Principal" engineers can't recall how many bits are in a byte, or how much space their data structure will consume. Perhaps these are tradesmen, however? Does the pipe fitter understand hydrodynamics, or how exactly his lathe cuts threads into a pipe? No, he just knows how to measure, cut, and install pipes. There is a use for those who grok and those who just build, but I hate seeing the moniker "Senior Software Engineer" applied to people who have just copied and pasted code for a few years, as they don't understand the 'why' of the system at lower levels.

    --
    HTFU
  212. Minotaur in a Mushroom Maze by tlolczyk · · Score: 1

    That was the name of a book serialized in Analog in the mid 70's. Part of the story involved a physicist writing FORTRAN code to calculate the magnetic field inside a cyclotron(?). Since I wanted to be a physicist I went to the library and got a book on FORTRAN, then a book on BASIC. A bit later I read about computers using aa language extension called to calculate curvatures from metrics for General Relativity. I couldn't get access to a FORMAC compiler, but did get access to REDUCE, so I learned Lisp along the way. Then Pascal. Forth when I got my C-64, Then when I got my ST Modula-2 then C. I remember Mark Williams C and my first debugger, along with my first exposure to Emacs via Microemacs. What a nasty way to pervert a young adult! ( Emacs that is. )

  213. HP25-HP67-Mainfram (Basic)-ABC80 (Basic) by Anonymous Coward · · Score: 0

    Started with HP25 calculater and upgraded to HP67. The I increased knowledge with Basic on a mainframe from manual (slow progress). At last I got a personal computer (ABC80). All coding have been due to need. I have programmed in about 8 languages as needed.

  214. Self-taught by movdqa · · Score: 1

    I think that I self-taught in my teens using computers available to me from friends (KIM-1 I think, building electronics and a local high-school had a PDP-11). I also visited a Honeywell data center and looked at code and I visited local colleges to use their systems and we might have had remote access at one of the libraries. My kids learned on their own when I gave them a K&R and set them up with a compiler on a desktop. They started a lot younger than I did and they didn't have the internet resources that kids have today. They both have CS degrees today.

  215. In school, Introduction to FORTRAN Programming by dgtangman · · Score: 1

    As an undergraduate I took an Introduction to FORTRAN Programming course because I needed another course to maintain full-time student status after dropping a much-hated French literature course. Punch cards on a CDC 3600, with later use of a CDC 6500 and an IBM 1800 prior to graduation. That first course was the second quarter of my freshman year; I took a CS course every quarter until I graduated, then spent two years in grad school working on a master's degree in computer science, until I dropped out to go to work in compiler development at Sperry Univac.

  216. Learned with books and notebook paper by Emperor+Shaddam+IV · · Score: 1

    I was about 14 or so and bugged my parents so much about computers, they didn't buy me one, but somehow I got some books on basic. The I would "write up" basic programs on notebook paper when I was bored during class at school. My first 2 complex programs were a black-jack program and a D&D character generator program that would randomly generate D&D character stats. Of course, no graphics, just text in these programs. Then whenever I had access to a computer I would type them in and debug them and make corrections on the notebook paper. The computer would usually be an Atari 400 or Atari 800 on display at Sears or a Single TRS-80 Model I that was in my Junior High school's Math classroom.

    Then when I was 15, I talked them into taking a college level programming course where I coded on TRS-80 Model II and wrote some business programs, basic stuff. Finally, I talked them into getting a Commodore 64 for me and I learned to write complex code "typing" in numerous basic game programs that could be found in some magazines at the time. The C-64 came with quite a manual and by coding all those games and looking at the "Peeks" and "Pokes" I learned about Bytes and Bits, memory addresses, the CPU functions and registers, sprite graphics, etc. I then did some Simon's basic coding of some simple games I came up with and did some assembly coding for the C-64 chip. Also got my first modem, a 300 baud, and learned about communications, uploading, downloading, etc.

    Took a few more classes in high school and coded on the Apple-IIe and TRS Model 3/Model 4 and I was on a roll. Sailed through college and learned Cobol/RPG/Pascal/C and some other languages and I just keep coding in whatever seems to be in demand that someone will pay me to do and is also fun.

    Been coding almost 35 years now and still keeping up I hope.

  217. Integer Basic with my Mom! by rajohn · · Score: 1

    Circa 1979-80 or so; she and I wrote a gradebook program (pair programming LONG before the term was coined), as she was an educator and wanted to learn something new. My Dad would come down to the basement, stand there for a while, trying to understand what we were doing, then just shake his head and go back to his EZ-Boy and watch TV :-)

  218. Apple II and Basic by Anonymous Coward · · Score: 0

    It was Jr. high. Looking over the shoulder of an upper class kid because there were only 2 computers at the time. Then things progressed. Hey JLM, y'all still out there?

  219. Epiphany by OpenSourced · · Score: 1

    For me, it was an epiphany, one of the very few in my life.

    I was always attracted to computers, but these were the old days, and the concept of PC was starting to develop. A kid like me had no access to any computing device, except a TI calculator that my older brother had. That piked the interest, but no revelation forthcoming.

    Then a government agency decided to introduce computers to the local business, and allowed computer time in a street office, to business people. The interest wasn't too big, so they had the computers sitting idle most of the time, and finally they let interested youngsters in.

    I was one of those youngsters, like 15 at the time. I fought my way through the BASIC manual, in English, a language I knew very rudimentarily, and did some coding. After copying some examples, I remember the moment when I decided to do something that wasn't in the manual, that is, draw a circle. I drew the circle point by point based on the distance to a center, by calculating the x and y coordinates, and the circle appeared in the screen. At that moment I knew that that was what I wanted to do.

    The most important feelings that I remember were the sensation of the machine doing what "I" told it to do, and the feeling of wanting to do something (draw a circle), and finding by myself the solution to that problem using logic. That was it for me.

    --
    Rome taught me patience and assiduous application to detail. Virtues which temper the boldness of great, general views.
    1. Re:Epiphany by edittard · · Score: 1

      That piked the interest

      I went to buy one of those but they had none linstock. So I said billhooks to it.

      --
      At the bottom of the /. main page it says 'Yesterday's News'. Well they got that right.
  220. Machine Code by Agripa · · Score: 1

    The first language I learned was 8080 assembly at age 14. I hand assembled on paper and then programmed by entering hexadecimal machine code into a Prolog PROM programmer. A couple years later, I was working with CBASIC and a Z80 macro assembler on a CP/M system.

  221. I learned to Code by Reading Others' Code by CAOgdin · · Score: 1

    It was 1962, at C-E-I-R. I was a "junior programmer," two-steps lower than dirt, paid less than the departmental secretary. But, there was a team there (many of whom went on to be well-known names) who were writing code to punch on cards to feed the 4K (7-bit bytes) IBM 1401. I needed to learn what they were doing, so I started reading the 1401's assembly code of a package of utilities (read/write tape, Fibonacci sort, etc.), and offering suggestions for improvement...until they let me start making those suggestions myself. The card deck was called CELIB (C-E-I-R Library), and I discovered a copy of that deck of cards in an Australian government agency where they were still using it (about 15 years later) on an ancient 1401 that, by that time, had grown all the way up to the maximum of 16,000 bytes of memory! And I proved it to them by showing them my name in the comments of some of the code they were still using, where we would note what we'd changed, and when.

    After I'd grasped how IBM 1401 assembly language worked, I started taking home a binder of the kernel code of the IBM operating system IBSYS, for the IBM 7090; we had one of the first. (The 1401 was used to copy card decks to tape, so we could mount the tape on the 7090, instead of spending precious time on that $800/hour computer loading the card decks at the card-readers' speed; all printer output also went to tape, which we moved over to the cheaper 1401 to actually print out on the then novel IBM 1403 printer).

    Once I'd figured out how some of the "kernel" of IBSYS worked, I began to realize that "Coding" wasn't "Programming." That led me to begin to understand the "bottom-up" (write some code, see if it does what you want, revise it, repeat) versus "top-down" (here's what we want to accomplish: Now, break that down into codeable, callable subroutines, which--in turn--were broken down into smaller bits of code, like CELIB) models of design. That lead to initial "Principles of Programming" in which we started with System Analysis (what exists; what's needed?), and did top-down decomposition into documented procedures, which then were written in the languages of the day: Assembly, FORTRAN, COBOL, and so on. Looking back, it was fun to survive those early years understanding how architects and engineers created new buildings--by starting with what the building was intended to achieve ("Start with the a definition of the end state")--all the way down to the laying of the flooring--in what came to be known as "top-down system design."

    It's been a fun ride. I still chuckle at people trying to start with coding, without a clear plan of what it is they want to eventually achieve. Coding is just the implementation of design. It's the tip of the spear...but you still gotta know how to find the game you want to throw it at! I still write the occasional utility--sometimes in .bat files--just because its' such an engrossing activity. But, I still start with a sketch of what I want to achieve before I turn to the computer to actually "code."

  222. Started in college, in 1972 by MpVpRb · · Score: 1

    Programmed in Algol, on punch cards, for a Burroughs B6700 mainframe. Learned circuit theory, logic design and assembly programming as well

    Then, in minicomputer lab, learned how enter the bootstrap program, in binary, with toggle switches

    After college, took a break from computers to run a manufacturing business

    I returned to computers with an Imsai 8080, taught myself how to program it in assembly, and used it to build a control system for an aerospace test rig

    Later, I built an 8086 PC clone from a bare circuit board (yes, back then bare circuit boards were available). Taught myself how to program it in assembly

    Then, I taught myself the C language, and got a job writing wafer inspection software..image processing on a 4Mhz 8086 requires some serious assembly skills

    After that, I learned the 68000, and used it as the controller for a machine used in eye surgery

    Next, I used a variety of commercial computers and custom designed microcontrollers for controlling a bunch of stuff in the theme park business

    Various hardware designs and control designs followed, including a telepresence robot, stored-value payment system with SQL database, lane tracking system for semi-autonomous vehicle, computer-assisted landing system for military helicopters, control and monitoring system for charging large industrial batteries, and the control system for high power microwave amplifiers used in satellite communication

    TL/DR..Learned the basics in college, the rest was self-taught

  223. C64 assembler by NCG_Mike · · Score: 1

    Cracking copy protection on C64 disk games. Had to write a disassembler. First commercial language was C on a Mac Plus with lots of 68k assembler.

  224. Demoscene by Kecki · · Score: 1

    Started out on an Amiga 500. Did most of the fun stuff with assembler on an Amiga 1200.

  225. Something I had to do by Anonymous Coward · · Score: 0

    I had to learn to do something I knew nothing about. March 1978, ordered a TRS-80. Weekly calls to the store, hasn't come in yet.

    June 22 1978, Radio Shack calls, my computer has arrived. I bring it home and start typing in the examples to see if it works. I had my first original program running the next day.

    I needed to move to a better apartment with ventilation and air conditioning. It got very hot. July 1, I move to a duplex with a window unit. July 5, I'm fired from my job.

    I go to work. 12 hours a day for months. Just banging away. I was learning what it would let me do.

    April 1980, I have a job with Texas Instruments. I being paid to program the 99/4.

    Programming kept me alive till I was fired from a hospital IT job in 2010. I was sort of burned out.

    Dropped programming for 2 years while I had cancer treatments.

    Now I'm on disability. I have all the time I want to program. I'm programming for me now.

    I give myself projects.

    Yesterday I bought an X Box 360 Kinect for $5.00 in a thrift store. I'm going to learn how to program it as soon as the AC adapter comes in.

    It's been fun.

  226. QBASIC by Anonymous Coward · · Score: 0

    I had a babysitter who showed me how to get into QBASIC from Windows 3.1 and I taught myself how to code from there.
    Of course, initially there was no internet and I didn't have a book to work from, so I just used the only flow control tools I had (IF and GOTO) to create some really beautiful code ;). Every line had a manually inserted line number. You always went by 10s in case you needed to go back and add a line later (didn't want to break those GOTOs!

  227. Mostly self-taught by rnturn · · Score: 1

    First "formal" attempt to learn how to program was in freshman year of college in Calculus class. The professor spent about five minutes trying to teach the basics of FORTRAN: "This is a DO loop it ...", etc. Then he assigned homework to write programs to numerically integrate the equations in problems 1-10. It was a disaster. (I won't even go into the ancient computing system that everyone had to use for these assignments. The lack of adequate computer resources was another disaster I won't go into.)

    I finally ran across a copy of Kemeny and Kurtz's BASIC programming book in the discount bin at the student book store. Bought that, logged onto my computer account, and worked through all the examples in that book one rainy Saturday afternoon. By then we had a brand new system that had been installed the summer before. Still not unlimited access but orders of magnitude better than we had during the learning-programming-during-Calculus debacle of the year before. Yeah it was BASIC but it was a springboard to the other languages I'd wind up learning in the future.

    --
    CUR ALLOC 20195.....5804M
  228. In high school. In 1977. On a Wang microcomputer by Whatsmynickname · · Score: 1

    11th grade my math class started a programming class in BASIC along with the math curriculum. This is the computer I used. Please note, this is about 40 years before all the big hype about teaching kids to program. Nothing is stopping schools from doing this, nothing except the schools themselves.

  229. Learning to code by warren.oates · · Score: 1

    I bought a Sinclair ZX81 in 1981, and taught myself BASIC. I went on to Z80 machine language; an 8- bit word is easy to deal with; it made more sense than BASIC anyway. Then I went on to the scripting languages; along the way got some Java. Now I create silly apps in Lua (using Corona) that people actually download.

    --
    Doh.
  230. Kickin' it old skool... by Anonymous Coward · · Score: 0

    On a Tymshare teletype in my father's office in the mid-60's. Fortran and COBOL, if memory serves, all saved to paper tape. It sounds so primitive now, but, at the time, it was the bleeding edge...

  231. Required Fortran Course for Geophysics degree by Anonymous Coward · · Score: 0

    Best course I ever took. Still coding in Fortran today on big iron all these years later.

    Gave me the basics to easily learn shell scripting, C, Scheme etc.

    I don't know about starting in grade 4, but I certainly support introductory computer science courses in secondary school

  232. From McCracken by Anonymous Coward · · Score: 0

    I learned from Daniel D. McCracken's Guide to FORTRAN iV Programming.

  233. Re:1st programming. self taught basic in 1976 by Fnord666 · · Score: 1

    When our school finally got a computer with a screen, it was always snowing. I remember...programming was uphill. Both ways...but we were happy back then. Kids these days don't know how good they've got it.

    Was your computer coal fired too like ours was? I remember going in early on Thursdays because it was my day to shovel coal.

    --
    'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
  234. Punch Cards by Fnord666 · · Score: 1

    Slightly off topic, but back in the 1980s our local vocational/trade school offered a career path as a punch card operator. You have to feel at least a little bad for anyone who opted for that vocation.

    --
    'The tyrant will always find pretext for his tyranny.' - Aesop's Fables
  235. All programming is self-taught by DudeFromMars · · Score: 1

    I agree with the comments about passion.

    I have hired more than a few junior programmers, and the really useless ones took instructor-led classes, did the minimum homework and received some kind of certification. They don't like to spend the time to really learn programming, they just want the money.

    The really good ones stayed up late nights banging away at code, making something work.

    Both of those types write shitty buggy code at first.
    The good ones listen and work to improve.

    Teaching all kids to code is stupid -- more than half the "advanced" kids struggle with Algebra 1 -- they are just are not wired to think abstractly.
    It is ok, the world needs fry cooks, roofers, and CEOs too.

  236. Yes. Computers aren't magic. by kwerle · · Score: 1

    When I was a child, there were no computers. At least not that regular folks saw. Then in middle school there were Apple II's. And they were pretty simple and anyone (with access) could poke at 'em and make 'em do stuff. Simple stuff, but enough to get the idea.

    Now everything is a computer. And most of 'em are magical black boxes. They are not approachable.

    I spoke to a telemarketer a couple of years ago. When I told the young man (I'm guessing late teens) that I was a programmer, he asked "do you know any good codes?" Like making computers do things is a magical incantation. Like on TV.

    So I'm in favor of very basic programming as a class. Probably not in elementary - probably middle school. Just like basic science classes. Because this is the information age - people should know how that works - at least BASICally :-)

  237. Mentored at NASA by trenobus · · Score: 1

    I had an excellent mentor at NASA at age 16. Learned about high-level languages and algorithms using the CAL language on Tymshare. Learned about how computers actually work by toggling in programs through console switches on a PDP-5. Learned how to code efficiently mostly by reading other people's code. Learned FORTRAN IV from McCracken's book. Read a lot of computer manuals, back when computers came with full documentation sets.

    Still working as a developer at age 63, and still love programming. These days I mostly use Scala and Python, and when I must, JavaScript. In my spare time I pursue my passion, which is machine learning, taking online classes and working on Kaggle competitions.

  238. quake c by nten · · Score: 1

    I started typing in programs from byte magazine into a commodore 64 while sitting on phone books so I could reach the keyboard. I then picked up C, x86 asm, pascal and c++ in that order but when quale came out it had a compiler that made replacement dlls from quake-c. Looking at that code as an example and modding it to make tame shoggoths and super weapons imprinted me with my coding "style". Different paradigms (oo functional etc.) don't really change what is my core balance between simplicity readability maintainability and performance.

    --
    refactor the law, its bloated, confusing and unmaintainable.
  239. Good old times. by Anonymous Coward · · Score: 0

    In my 5th grade we had a class named Computer Science. Basic stuff - some excel and power point practice, very basic web pages in WYSIWYG editors - this sort of things. As we were still kids they gave us an old DOS game to practice keyboard typing. In short, you had to type letters as they were falling faster and faster from the top of the screen. The maximum speed wasn't enough for me so I decided I wanted to 'edit' the game and add adjustable speed. That's how it started.

    I had no broadband at home at that time. All I could afford on my low 10-yo pocket money was an expensive Internet Cafe twice a week to download any available tutorials and tools which I was carrying on floppy disks home. Boy, I couldn't count the number of times one of the floppies carrying a part of a split zip archive broke. Not to say that I was just making my very first steps in the English language at that time. It took me almost a year to improve my linguistic skills, comprehend Turbo Pascal and its graphic library and to write my very first game exactly as I wanted it to be.

    And then I discovered C and yet again I started a journey to where I am now.

  240. Part self-taught, part university by bytesmythe · · Score: 1

    I got aTI-99/4A for my birthday when I was 8. I didn't know how to type yet, so my mom helped by typing in the examples from the Beginner's BASIC programming guide. Then I would edit them and figure out how to do stuff on my own. Eventually I was writing my own simple programs and trying to figure out how to make databases saved to cassette tapes.

    A few years later, my dad bought an IBM PS/2 80 that came with a BASIC interpreter. A couple of years after that, I was in junior high school and had to take a programming class (taught in BASIC). I had been programming for several years at that point and was already well beyond what the class covered. This was still the 80s and the school didn't have a specialized computer teacher. Since computers had keyboards, they recruited the typing teacher for the class. Being a computer class, at some point Borland sent her a Pascal compiler. She knew I was way more into computers than anyone, so she gave it to me. I installed it at home and taught myself Pascal by writing programs in BASIC, then re-implementing it in Pascal.

    When I got to college, I learned the "computer science" aspects (e.g. data structures and algorithms) of programming in C, then C++, and also learned things like COBOL, x86 assembly, and OpenGL. Along the way, I've also taught myself other languages as needed, like HTML, perl, php, SQL, etc.

    I think the idea of making programming a requirement is pretty stupid. I have taught many programming classes myself and have observed the same thing as every other programming instructor I've ever met: there are a few people who pick it up instantly and advance far beyond the rest of the class in a very short time, a large number of people who are capable of doing it at a basic level, and a few people who just cannot get it at all. We should definitely have computer usage classes, especially for standard business applications, but what is far more important is how to think critically about information. We don't need any more anti-vaxxers or climate-change deniers.

    --
    bytesmythe
    Hypocrisy is the resin that holds the plywood of society together.
    -- Scott Meyer
  241. Commodore by supertall · · Score: 1

    C64's BASIC was my first exposure to programming. I had to take a FORTRAN class in Aero Engineering school, and coded a computer model based on some old NASA code for my Master's Thesis. My first job was writing FORTRAN and C code for spacecraft flight software. Learning on the job ever since.

  242. Re:1st programming. self taught basic in 1976 by Anonymous Coward · · Score: 0

    Same here. Except I cannot for the life of me shove JavaScript down my own throat. My whole being will always vehemently be in opposition learning it. Which is sad because that's what most programming jobs nowadays seem to require.

  243. Blame Windows NT by togofspookware · · Score: 1

    I had fooled around with C a bit because my dad was always writing little [incomplete] games in it. All the tools I had were his.

    For some reason I was running Windows NT on my computer. It came in the box with Visual Studio and I thought it sounded cool. Even got it to play Half-Life after horsing with video drivers long enough.

    One day I was "cleaning up" the hard drive by deleting files that I didn't recognize or care about. Apparently on that version of NTFS there was a file in the file system that you could delete that was...vital to the filesystem itself. Lost all my data because I sucked at backups back then. "Enough of this Microsoft garbage, I want to try Linux!" I said. And since I had no idea what I was doing, my dad also picked me up a copy of 'Using Red Hat Linux'. Something like the second half of the book was just to introduce you to shell and Perl scripting, and I was like "holy crap this is so much easier than C". And then I discovered Ruby (via Slashdot), and it just made so much sense to me, and programming was actually kind of fun.

    This was late 90s or early 2000s. I was about 16 at the time. I got a kick out of finding ways to run Doom on school computers. The librarians always thought I was "hacking" and got all upset. Bahahaha stupid librarians.

    Learning new programming languages is always kind of cool. Maybe because I suck so bad at foreign human languages.

    --
    Duct tape, XML, democracy: Not doing the job? Use more.
  244. Mainly from reading the manual by peter303 · · Score: 1

    I used to be able to sit down with an intensive read through of the reference manual, then immediately code it. A prblem these days with dusappearance of most bookstores, its harder to get abhold of the reference manual.

  245. Actual coding is small part of commercial software by peter303 · · Score: 1

    The second big learning curve are of all the best practices of a successful software company. I was under the delusion once that beacause Imwrote nifty programs in high school and college, I could code commercially. No way. We insiders call this academic software, an euphemism fior semi-crap. A commercial coder must know about source control, writing tests, continuous compilation and delivery, specification systems, training and so on. I call these best practrices in comparison the emerging academic discipline of of rigorous software design. Best practices include corporate culture and dev-lead style as well formal engineering. You dont have to work for a commercial company to learn these practices. Some of the better open source cooperations in Github incorporate them. Somto,can learn partipating in them.

  246. The semi-usual way... by undefinedreference · · Score: 1

    When I was 4-5 years old, Dave, my dad's best friend from childhood, gave my family a Commodore 64, a stack of magazines, and a programmer's reference manual. I learned to code when I was 5 and started programming when I was 6. By the time I was 7, I had to start learning to optimize my code and conserve memory.

    By the time I started college, I had many years of experience under my belt...

  247. Olsd Tech by lucasjs · · Score: 1

    On an IBM 360 mainframe at my University. First using SPSS to look at 15th century tribute lists from Yucatan, then bringing the college mainframe to it's knees in an experimental computer mapping course. We were assigned to do a fishnet of 10 data points. I did an actual map (Fortran) of the state of Yucatan (outline and 101 municipios). It didn't work in the 4k students were allocated. We looked for errors and found none. Finally they shut down all of the admin programs and let mine run full out over one weekend and it worked. Now I have more power in my phone :-)

  248. East Germany by Anonymous Coward · · Score: 0

    A few things picked up, getting introduced to a Robotron machine, doing homework on an Amiga and then finally learning to program from the docs, trying examples and joining computer work groups. And lots of video games.

  249. LOGO on Apple II and BASIC on TRS-80 CoCo by ZarfMouse · · Score: 1

    I was born in 1976. I had logo in I think 4th grade which was the first time I'd ever touched a computer. That summer my grandfather got a TRS-80 color computer and I borrowed/kept my 4th grade math text book. That text book had a BASIC tutorial in the appendices which we had not looked at during class. I used that BASIC tutorial along with a manual that came with the TRS-80 along with some source code print outs from programs that my grandfather wrote (simple programs to help him choose lottery numbers) to learn to write some simple programs. One of my first programs told random jokes. That summer since I had limited access to my grandfather's computer I spent a lot of time writing BASIC programs on napkins at restaurants. A year or two later he gave me that computer and I started making more complex programs. My first ambitious program generated Basic D&D characters, rolling the stats and then suggesting an optimal race and class to go along with the stats. I continued to make that D&D program more and more complex throughout Junior High, adding AD&D rules and adding inventory and spell book parts.

    I didn't learn structured programming (with procedures and data structures) until high school when I took a Pascal class at my high school (a math and science boarding school). I taught myself C from the K&R book right after I finished Pascal. I taught myself C++ while taking a C++ class in which the teacher didn't understand the language. The class used C++ in 21 days, but I used Stroustrup. Then I taught myself Perl from the Camel book in high school as well. Whenever I learned a new language I would first work on understanding and modifying example programs and then choose a program I wanted to write as how I would learn. I made programs to build mazes, a web app that was an early kind of forum/blog, and more and more complex AD&D character generators.

    I also spent a lot of time in 7th and 8th writing programs for my TI-81 to implement various math formulas we were learning such as a program to do the quadratic formula and to compute other things about parabolas like the location of the focal point and a program to use determinates of matrices to solve systems of equations. The more math tools I learned the more fodder I had for writing programs to implement them.

    I found in high school that one of the major obstacles to programming courses was that many kids understood how compiling and linking worked and many didn't. The kids who didn't had a really hard time even getting Hello World to work because the teachers taught the language but didn't teach the tools so the build process was just kind of like a magic incantation rather than a process they understood.

  250. My learning curve by Anonymous Coward · · Score: 0

    I learned to program as a senior in high school in 1968-1969. Our school had an IBM 1620 and I learned both FORTRAN and IBM 1620 Machine (not Assembler) Language. At the University of Maryland (1969-1973) I learned Univac 1108 Assembler, COBOL, FORTRAN and other technologies. After graduation I learned C, C++ and Java. Pretty good career.

  251. TI-BASIC on a Texas Instruments Calculator by Anonymous Coward · · Score: 0

    My first experience in programming was TI-BASIC on a TI-84 calculator in high school. After that I began learning from textbooks which I bought, first Java, which I have now grown to despise, then C for embedded systems applications, and most recently Python for data science.

  252. Forth by bigtreeman · · Score: 1

    Bought a shareware floppy of F83 Forth by Laxen & Perry.
    Contains all the code from assembler, compiler, interpreter, editor, +++, Learned from reading the code. Forth is great for writing a word then executing it on the command line.
    Forth code snippets in early Dr Dobbs Journal, before the Forth branch fell off their programming tree.
    Forth group on bbs.
    Starting Forth and Thinking Forth by Leo Brodie
    https://www.forth.com/starting...
    https://sourceforge.net/projec...
    IBM PC technical manual with circuit diagrams and BIOS listing.
    Programming machine code on an 1802 with a thumb-wheel prom programmer.

    --
    Go well
  253. Self Taught by Anonymous Coward · · Score: 0

    While attending college I worked second shift at the Control Data Corporation (for you youngsters those were the days when the CDC 6000 series was THE supercomputer) in Rockville MD.

    During idle periods I taught myself my first language, FORTRAN, from a book I found in the data center library. Because I had a background in wiring plug boards for Electronic Accounting Machines where I had to take into account component timing issues I found computer logic and even assembly languages easy to learn. In fact the second language I learned was assembly language for the IBM 1401 and my third language was IBM 360 Assembler.

    That was in 1964 and I learned well enough to stay gainfully employed as a programmer, database administrator and systems administrator beyond my 70th birthday.

  254. First programming job by misophist · · Score: 1

    My first job was programming loadlifters.

  255. Re:1st by fisted · · Score: 1

    that still yields 2...

  256. Create your basement first by info6568 · · Score: 1

    First, I was formally trained on music (+14 years). This opened my mind to abstraction, not only because you need to figure how to translate the figures to sounds, but also because it is not the same to play baroque than romantic music. All this have a big context around that prepared me to work with today's complex scenarios. Also, I learned two years how to use mechanical typewriters without letters on the keys; this, together with complementary piano lessons helped me very much to make a healthy usage of the computer keyboard (very fast typing and zero carpal tunnel syndrome).

    Then, in Costa Rica we didn't have all the facilities other countries have when I was a child. For me, a computer was a big refrigerator full of bright lights and some big round tape circles dancing and making bip bip bip. Was when I had an old second hand 1960s book describing how these machines really work that started to catch my attention.

    After that, my brother began studying Electronic Engineering on the University while I was still in High School, and a Tandy 1000 EX computer arrived home. There I was playing with an Epson Printer on Basic and made my first music paper calculating how to use the individual pins in the printer. After that, everything was obvious (of course I was very good at math on my early days). In fact, today I see that the students are lost on extremely abstract concepts without digging enough on the basements ... it is important, at least once in our life, to create our own graphical interface using our own rules and designs, and not to depend so much on Windows, OSX or X APis, or to think that everything in this life is pure HTML.

  257. Bit by bit by pdfalcon · · Score: 1

    I soldered transistor shift registers together in the sixties. In 68 IBM taught me Fortran Everyone should know that a series of simple steps can yield useful results.Past that, if a kid hasn't the taste for it then enforcing learning isn't going to help

  258. Self Taught by j_kenpo · · Score: 1

    In middle and high school, I kind of self taught myself electronics by reading a lot of Radio Shack books and doing project kits, so in high school I wanted to learn how to program. Outside of some basic LOGO and BASIC stuff, I never really had exposure to programming. I took my Pascal text book from the first day of CS in high school, and read it cover to cover in about 2 days, doing all the exercises in Turbo Pascal. Next weekend I picked up a book on C/C++, took a few months to get through since it was more than a syntax difference between the two, but read that cover to cover as well. That pretty much solidified my basic understanding of modular and procedural development, and introduced me to OO. A few times in between I would code in the examples from Debug that were in PC Magazine, and that sparked an interest in Assembly that I would later go back to. Spent the next few years reading books on algorithms, program logic and design, and OO design patterns. I was pretty far ahead of the curve by the time I stepped foot into college level CS course. I spent those years honing in C++ and Java, and learned assembly and circuit design as part of engineering courses. The rest was being in the right place at the right time.

    Truth be told, it took a lot of interest. I had to really want to do it. It is a passion that I pursue, and it takes more than just learning "syntax" that are taught in schools. Not everybody can do it, just like not everyone can solve complex math programs, paint a masterpiece, or break through a defensive line and run a 50 yard touchdown. But introducing it to populations of kids that wouldn't normally have access to it through schools is a good idea. But that kicks up a whole other discussion about education that is outside the scope of one post.

  259. I learned to code this way by Anonymous Coward · · Score: 0

    It was 1979, and I was living on a sailboat in Key West, bringing contraband from the gulf stream off large cargo ships into smaller
    lots into USA. I had cash to burn, living a Jimmy Buffet fantasy. I saw a magazine called Byte, advertising
    these Apple II machines that you could program with a cassette deck. I understood lots of machines/technologies in our civilization, from
    cooling with ammonia and propane, to celestial navigation. Here was a tech that I truly didn't understand. I went up to Miami,
    and bought a plastic box for $1800, that could play pong and be programmed. It was the most difficult thing that I ever learned,
    and then realized that I could make money at it without getting ripped off (at gunpoint), or (generally speaking) ending up in prison,
    writing my memoirs about the consolations of sodomy. Best $1800 I ever spent, and a subscription to Byte was all it took to
    get me programming.

  260. Re:1st by Noah+Haders · · Score: 1

    the whole point of Logo is that you give commands to move the turtle around on the screen. Sounds like bluffing!

  261. Magazines with printed BASIC code for Z80 Spectrum by Anonymous Coward · · Score: 0

    I had a Z80 computer and didn't have many games. Got my hands into a bunch of magazines with code in them, and painstakingly copied the code of each game (I didn't have a way to save them, so any program I entered would last only until I switch off the computer).

    After a couple of days of entering code, I began understanding what the code did, and started programming, initially by making modifications to the code to make the programs more interesting. I think it was an excellent way to learn. I've been self-taught ever since, and I've been working as a software developer 25 years, and I can code in at least 10 languages.

  262. Learned the hard way by ruir · · Score: 1

    My dad gave me a ZX Spectrum with a Z80A back in my 15 year-old anniversary, summer time, learned BASIC till December with books and in December started programming the darn thing in assembly. From there, learning gw-basic, pascal and C in technical school was a breeze, and learnt x86 assembly on my own. Later on did as my thesis the first ZX Spectrum emulator for Windows.

  263. Everyone Don't Need To Code by verrol · · Score: 1

    Is coding today really like learning to read or write? I don't think so. I would say learning to draw by hand is even more important than coding. Regardless of your field, knowing how to draw simple figures and diagrams will help convey your idea. But yet, we don't say that everyone should learn to draw.

    Computer programming should be like any other field, those who are interested, get in. True, computers are getting more and more pervasive, but so too are cars, motor cycles, and bicycles. yet, not everyone knows or need to know how to drive a car or ride a bike.

    It might help a person if they knew how to drive or ride, but that only depends of if they live some place where they have access to a car or bike and it matters that they know to drive.

    As a mostly self thought programming, I have been posting [YouTube videos](https://www.youtube.com/channel/UCnVxTe31G4nTbhp9dQEO4iQ) which break down programming concepts and addresses one concept at time. I think it is a really good introduction to computer programming for *anyone* who wants to learn or is curious. But even as simple and clears as my videos are, still there will be people who won't get it, because programming is not for them. And they shouldn't be torture to learn it.

  264. 7th Grade, 1973 by dickens · · Score: 1

    BASIC on mark sense cards, West Vancouver BC. After school program.

  265. on paper by sad_ · · Score: 1

    I wanted a computer so bad, but it was expensive at the time and my parents couldn't afford one. they did inlist me in a programming class, i joined as a the only kid amongst adults. this was during the boom of the 8bit home computers, so they teached basic. i started writing programs with pencil & paper because i still didn't have a computer. after a year or so, with some funding from other family members a computer was bough (a typical 8 bit, Amstrad CPC464, awesome) and i finally could type in all those programs i made! other computers followed, programming languanges changed, i evolved along.

    --
    On a long enough timeline, the survival rate for everyone drops to zero.
  266. Self Taught by Anonymous Coward · · Score: 0

    Self taught C++ writing mods for Starseige: Tribes in 1999 at age 12

  267. Over time by Anonymous Coward · · Score: 0

    I first wrote some BASIC programs on a Commodore 64. After that, some DOS batch files on an early PC.
    Went into the AF and through tech school, learned Ada and some assembler. Still didn't understand much about OOP (I was such a noob when I came in - the others in my class already had professional experience, if not degrees as well).
    Maintained a mainframe, wrote a bunch of what were basically batch files.
    Finally transferred to a programming job...to learn COBOL (So painful!).
    Switched offices, learned Java (they actually sent me to a civilian class for this - that helped drastically). Finally understood OOP and a good bit about database design.
    Later, I switched to .NET and C#.
    Much later, I've done a good bit with Javascript and Python as well. Looking back, I would say that you want to start with procedural languages, something really basic. Skip COBOL and anything to do with mainframes unless you really need the money (yes, they're still around). Once you're comfortable, go on to learn about object oriented programming languages. Learn about networks and databases as you go, certifications can't hurt.

  268. FORTRAN on IBM 1620 by UncleJosh · · Score: 1

    FORTRAN course in high school in 1963 (high school did not offer it, dedicated teacher took two of us to an early morning vocational school), and then CORC in 1964, required course for 1st year engineering students.

  269. Remember when manuals were useful? by Not-a-Neg · · Score: 1

    I taught myself how to code thanks to the manual that came with the Timex Sinclair 1000. In the back of the manual were sample code projects, I went through those and the logic of BASIC programming just clicked in my 5-6 year old head. My Elementary school also had 2 books in the library with sample code projects that I checked out and went through. By the time we got a 286 in the house I was creating my own projects, mostly text-based RPG's since I was big into D&D at the time. By middle school I got into graphic design, and by High School 3D modeling (POV-Ray, Lightwave, and 3D Studio). Entirely self taught, by the time I got to college I knew more than any class could teach. There was a new class offered my 2nd year for this new-fangled thing called "Java" but I figured it was just a fad. :/

    --
    -==- Buy a Mac and leave me alone!
  270. Learning to code in the 70's and 80's by jpiratefish · · Score: 1

    So I got into computers early on - having been a technological terror growing up - taking apart everything. My friends dad had gotten a SWTPC 6800 with an SS50 bus and I used that to get my early knowledge on - we were typing in BASIC code on the thing, either adapting games found in issues of Creative Computing magazine, or modifying them to have some fun while figuring out how to do things we wanted. That was early on - later on, when the TRS-80 became more mainstream, the games in the magazine got more platform specific - and Creative Computing printed all the source code for the game in the magazine. Back then there were no "downloads" or "OCR" that could replace simply typing in all the content and trying it. That's what we did. And people weren't perfect - so after typing in 10k lines of code to make a dancing robot, getting random errors at various lines in the code was inevitable - it was that "post entry" debugging where the code education comes in - now you're checking your own work for syntax and other little bits - but to really know what's going on takes time - and then it clicks. The incentive was when the new space shooter was Commodore specific and you had an Apple ][ - this forced you to figure out what they did, convert to Apple, and try your own version. The "programming" nerd switch, for me, took some years before it clicked - around the middle/end of 10th grade before I became dangerously knowledgeable in this stuff - enough to write a game that summer and get hired by a software firm during my Junior year in high school. That was some 6 years of hands on, with 3 of it focused on learning to code in my off-time.

  271. Long time ago by seabrook · · Score: 1

    I learned coding from an IBM 7094 Operations Manual and then from an IBM Fortran II manual in the 60s

  272. TI-82 graphing calculator by an+enormous+void · · Score: 1

    I learned to program on a TI-82 graphing calculator using the Z80 assembly language.

  273. Re:1st by tmjva · · Score: 1

    I too, RTFM.

    --
    Tracy Johnson
    Old fashioned text games hosted below:
    http://empire.openmpe.com/
    BT
  274. In the late '70s by Megane · · Score: 1

    1978, 8th grade, I had already been playing around with TTL chips (thanks to The TTL Cookbook). Cool math teacher was going to a weekly Saturday continuing education thing in the big city about programming computers in BASIC, brought me along. I actually figured out the IF statement before it was covered. Sad part was that he had to miss 3 of the 10 weeks and couldn't get the credit.

    The next year we had to move, but I got a 16K TRS-80 for my b-day (partly because it was delivered to the wrong store, thus bypassing the 6-month backlog!) I must have spent an hour trying to figure out how to answer the "MEMORY SIZE?" question. (stupid answer, just press enter)

    Within a year or two I had acquired a Z-80 programming reference card and started disassembling the ROM. So I learned a lot of 8080 programming style from Bill Gates. (not much Z-80 optimized code in there) Around 1983 or so, I even got a 4K CoCo just so I could hack 6809 code. Factoid: the inner loop of FORTH is just two 6809 instructions. I later had a paying job '97-'00 working with 6809 code.

    --
    #naabhaprzrag, #sverubfr-000, #agi-fcbafberq, negvpyr[pynff*=' negvpyr-ary-'] { qvfcynl: abar !vzcbegnag; }
  275. Started to lean programming back in 1976 by Anonymous Coward · · Score: 0

    no computer (easily) to buy back then, a (here in the USA you call it high school) teacher asked a bunch of us in math and physics class who was interested in learning how to program. The initial group of about 25 whittled down quickly to 6 or 7, as we did for weeks all programming in Pascal on paper before getting access during summer break to a PDP-8 at a local university. After the summer break, I then was able to buy a self-assemble kit for a KIM-1 through a contact directly from the USA, where I first had to use 6502 assembler, the "upgrading" to Tiny-BASIC. Then got more and more in contact with local computer vendors/importers and got access to the first CBM PETs, TRS-80s and some early CP/M-80 boxes. The journey/learning continues to his day... ;-)

  276. Engineering school on mainframes. by Spadista · · Score: 1

    Fortran and then APL on an IBM 360 targeted at modeling and numerical methods classes at university in the 70s. It's no wonder that I still can't code.

  277. At first, I avoided learning to program by CC+Viper · · Score: 1

    Because I somehow knew I would get all involved in it, my first impulse was to avoid learning how to code and just enjoy using that 'new' devise called a computer. I was fascinated at the things it could do so my friend set me up with a 386-25, Windows 3.1 machine. He really did me a favor, set up several what were then 'trick' BAT files on startup so I went right into Windows. As I said, I was fascinated. During the first week of playing with my new machine, I got hold of a copy of DOS disks and through experimentation with my toy, learned many things about how computers and software work. I thought it was a later version of DOS and I thought I'd be real cool and upgrade the system by myself. Whether it was a later version or not, I ended up ruining the entire installation - could never boot again, much less get back into Windows again. Long story short, I more-or-less forced myself to learn how the thing ticked - followed the programming chain from BASIC to QBASIC to C to C++ before abandoning compiled languages for PHP and the proverbial LAMP stack. The whole trail led me to actually enjoyment of coding by developing interactive websites from the ground up and from the inside out. Long live coding!

  278. Problem Sovling Skill are what need to be taught by Anonymous Coward · · Score: 0

    A computer language is like normal language School will teach you proper grammar, and vocabulary but only the local can teach you the real language.
    School need to teach you How to THINK;
    What make an Algorithm FASTER, how to use memory; How to read other peoples code.
    These are academic goal.
    Writing a program is different every time; Every one use past experience to solve a present problem. The more experience the better the solution. The more exposure to difficult problem, and grading the simplicity and efficiency of the solution would benefit student more than any language they will ever learn.

  279. Batch files then Java by Anonymous Coward · · Score: 0

    My first "coding" experience was writing batch files. I remember writing a choose-your-own-adventure tale as a kid and thinking it was so much fun. There was no programming in school, so my next experience was with a Java programming class my freshman year of highschool. This was before javascript, back when you used java proper to make applets for the web.

    I then had some computational chemistry projects in college that led to me teaching myself C from "The C Programming Language" (a great resource).

    For the most part, that one year (two semesters) learning Java from the ground up has allowed me to pick up any language if I put my mind to it.

  280. By staring at an Apple ][ prompt by jeffrlamb · · Score: 1
    My parents were teachers. They brought home a TRS-80 and an Apple ][ with no external software for christmas breaks and summer breaks. . . No software. None. All you could do was break out of it trying to find something and start programming it. . . I borrowed a book of example programs (not instruction) from the library and typed a bunch of those programs. . . eventually learned what the things meant, in context at least. . . . Nothing to save the programs to, so they had to be left on all break or all summer or I had to start over. . .

    I worked summers walkin' beans, detasslin' corn, and buckin' hay bales and eventually bought a Laser IBM compatible which had a REAL GW-Basic manual! Read that cover to cover and learned things I'd been using for years but didn't really understand. . .

    I wrote a lot of programs for my own use on that computer (and follow on ones I bought) for school work, organizing stuff, stupid games, etc.

    Got a job as a programmer when I started college in C++, which I'd never heard of (I remember looking in the book store in the "S's" for "See Plus Plus" because I had no idea there was a language called "C"). I totally faked my way through the interview. I did know "programming," just not language specifics, so that helped. The interview was luckily on a Friday and I bought a book on C++ on the way home from the interview, read that book cover-to-cover over the weekend and started the job Monday.

    I had a lot of programming classes in college (Computer Engineering major at University of Illinois). That helped a lot.

    Told my first day on the job (officer in the Air Force) that I'd have to be programming in Java once my security clearance came through, so I spent the time learning Java from a book (or maybe the internet existed enough at that point that I used that. I don't remember).

    I'm not proud of it (probably still leads me to be more "hacky" than properly trained Computer Scientists), but I think I'm about as "self taught" as is possible to be. . .

  281. How I learned to code by Anonymous Coward · · Score: 0

    I was 11 and sat in the school cafeteria when a friend told me that it was possible to hack into computers and remote-control them from afar.

    I was hooked.

    I learned QBASIC by myself by trying out the various words that the language consisted of. Look a new word up in the manual, try inserting it at random places in my code until it worked.

    The internet came to my home, and I quickly found a web site that had tutorials on writing computer viruses in x86 assembler. I went to the book store and bought a book about it, despite that the bookstore owner warned me that assembly language was dead. A few days afterwards we went to my grand-grand-mother in the very far north Sweden. It was summer, so the sun never set. 24 hours daylight and nothing to do. Except read the book.

    By the time I got home I knew assembler for x86 by heart, despite never having written a single line of code. I wrote a virus for DOS, and then my interest in malware disappeared. I was 14 and switched to writing an operating system instead. Nowadays it still works, is 8kB large and can only boot from PXE and floppies.

    Many of the more "optional and advanced" stuff we learned at the university, I had self-taught before I even began high school.

  282. In College by pfg23 · · Score: 1

    I took an introductory computer class as an undergrad in 1978. The language was BASIC on a teletype. I was a math major at the time, but I liked programming and the field was booming back then (still is) so I switched my major to computer science. After ten years in the field, I still liked it so I went back to school and got my Master's in computer science.

  283. Long long ago... by Anonymous Coward · · Score: 0

    High School: Acoustic modem, teletype (with paper tape reader/puncher), HP2000F shared between several high-schools, running BASIC.
    College: IBM 360 (later a 370) mainframe, punchcards and line printer (never any displays/monitors), FORTRAN, COBOL, IBM BALR (assembler), SIMSCRIPT, PASCAL. BS degree in CS.
    40+ years professional software development, mostly for US DoD.

  284. Taught myself the basics, then schoo/on the job by jctripp · · Score: 1

    I taught myself rudimentary BASIC on my dad's suitcase sized luggable in 1982 (probably a Kaypro or some HP portable testing device that supported BASIC), so I could create random character scores for D&D. Took BASIC a year later in my junior year of HS, then FORTRAN my senior year, and again as a freshman in college. Took assembler my junior year and then a 101-level evening course in C right after I graduated. Everything after that was either self taught or on the job training to learn various IDEs (C++, Java, VB, C#, and a few others), scripting languages (Perl, PHP, Bash), and one-offs like HTML, XML, and SQL.

    These days it's primarily just the occasional MS Office Macro, Excel spreadsheet programming, or web development using a CMS like Wordpress, Drupal, or Joomla.

    Thinking about teaching myself some mobile game development over the summer, but I need to find a good cross platform (IOS & Android) development tool to invest the time in.

    I think the early instructional course work was valuable for teaching the basic understanding of stepwise problem solving and some of the deeper concepts of computer and software architecture. Without it, the later self-directed stuff would have come a lot harder.

  285. it all started with the Texas Instrument 99/4A... by Frivas · · Score: 1

    oh, the good old TI 99/4A... lot of afternoons in front of the black and white TV screen, coding games at the age of 6, saving them on the old cassette tapes. Learned to code (and also, learned english!) with the big books with programs that came with the TI. After a lot of coding, a good game of Parsec or Jawbreaker made my day. After that, the first Amstrad 8086 with Basic.... and of couse, Bushido, Maniac Mansion, Monkey Island and the mighty Leisure Suit Larry! how can I resist to code my own games?? I learned to code by myself, pushed by the needs of having my own personal game characters on the TV screen... And now, more than 30 years later, I still have joy coding projects in my spare time, of course, doing IT business of my own. But it all started with the TI 99/4A that I still have on my home!

    --
    -- Francisco Rivas C.
  286. late start by xuvetyn · · Score: 1

    learned at a trade school (ITT-type thing) in SLC in the 90s pursuing a simple degree in computer programming (2-year degree). then threw it away being duped by the whole dot com craze. after the bubble burst, there was no demand for Perl monkeys. =(

    --
    alive to the universe, dead to the world
  287. Don't Turn It On; Take It Apart... by metaforest · · Score: 1

    Started at about 7 disassembling dead TVs, radios, clocks, calculators (electromechanical), and typewriters. By 12 I'd learned how to wire up 74xxx TTL devices and build some basic circuits. About that time a neighbor/mentor friend of mine bought an Apple II+ to experiment with an early CNC package. He didn't get far with it, but he would let me dink around on the computer. At first I was just into thew gaming aspects, BBSs lead to exposure to the thriving software cracking and swapping communities. A few lucky finds got me interested in 'serious' programming APPLESOFT BASIC wasn't cutting it, and it wasn't long before I had a copy of LISA (Lazer's Interactive Symbolic Assembler) an early 6502 macro assembler IDE. It had a decent disassembler. After that I was off to the races, learning how to write 6502 assembly code from articles, disassembling chunks of commercial games and so on. By 15 I got my first exposure to a mandatory class in computer programming. The class was going to be teaching Business BASIC... on the department mini. When I finished the first month's homework while sitting in class by the end of the first week, the instructor had the good sense to pull me and a few other more advanced students into a separate work group that swapped lessons in programming assembly language for our respective platforms of choice.

    By my junior year a few friends and I would get together for hacking sessions. This led to a simply dizzying explosion of projects, reverse engineering, hardware experiments, software development, and also dumpster diving the lucrative back alleys of the business parks in the south Bay Area.

    By the end of my senior year I'd picked up a contract at Apple developing software to test Software... At first on the Apple ][ line and firmware testing on the Apple //gs and later Macintosh, and culminating with a test engineering spot on the HyperCard development team.

    Along the way I'd picked up 68k assembly, C, etc, but it took a long time before I had any decent skill in software design. Eventually I ended up working for Microsoft in the early to mid 90's... That experience killed my enthusiasm for the software industry. I went back to my roots... bare metal... and electronics.

  288. A pad and a pencil by bitterblackale · · Score: 1

    I picked up a little BASIC programming on the Apple ][ at school in 1985. Then in '87 we got our Tandy 1000 HX which came with BasicA. Just had the manual that came with the PC, which had rudimentary descriptions of the language. From that, I made a few text adventures, eventually learnt how to draw on the screen (WITHOUT crayons), and how to play single-note melodies. Later, I did QBasic, and got really excited when I found a compiler (trans-piler) that converted qbasic into executables. Around 1989, I got a book on the 'C' programming language. Problem was, our Tandy did not have a hard drive (just a solid state eprom with built-in DOS 2.11). All the C and C++ compilers required a hard drive, but I really wanted to learn C because all my favourite games were programmed in that. I went through every excercise in that book with just a steno pad and pencil. A couple years later, we got a 386 with a 20MB hard drive and I could finally compile, I already knew the language and dove right in to making my own home-brew version of Starflight. I didn't get too far with it, but got the basic UI and a ship that could fly around a bit. Moral of the story: if kids want to code, they will learn how to code whether it's required or not. If they don't want to, they will fail out of spite.

  289. In the Eighties by Bratch · · Score: 1

    Typing BASIC commands from books into a TRS-80 MC-10, connected to a TV, saved to cassette tapes. Then later on a C-64, then onto x86 machines, some Sperry-Univac stuff, and eventually computer science.

    There are over a hundred podcast stories of how people got into computing here:
    https://wildermuth.com/hwpod
    I've listened to about a dozen of them, some are very interesting.

    --
    Beware of the Redittor who loans you a Sharpie.
  290. QBasic by grimfate · · Score: 1

    I taught myself QBasic when I was 12. Not too sure why I chose QBasic, but I think it was a very good decision. I have never been the type of person to keep at something if it was too demanding (I get bored and give up), so QBasic was great because I could easily and quickly achieve something, and whenever I pushed myself the next thing was easy to learn as well. There was no structural code, no libraries or headers, no complex IDE, or any of the other issues that come with learning a lot of the popular modern programming languages. It was possible to just type a single line of code - something like "print Hello, World!" - hit F5, and technically you had a running program. And this was before I knew about the Internet as a resource for learning; I actually taught myself by reading the help menu, which listed all the commands in QBasic, with had clear explanations and examples for each. That was how easy the language was to use. I figured out how to print to the screen, get user input, read from and write to files, and draw graphics with no help beyond the help menu. (QBasic had zero support for image files, so when I wanted to make a tile-based game, I had actually figured out by myself the logic and math required to store pixel colour values in a file, load them and display them, which I was quite proud of.) The only issue with QBasic is that it's difficult to make meaningful programs with it, as the available commands are quite limited and the programs are extremely slow. But it did teach me the fundamentals of programming and cemented the mindset of a programmer within in. It was effectively like training wheels for programming; you weren't ever going to be a pro if stuck with it, but it made the initial learning a lot less painful.

  291. VIC 20 and a book on BASIC for TRS 80 by chasvircio · · Score: 1

    I didn't know better. Hey, it was BASIC on the VIC and BASIC in the book, what's the diff?
    So, I learned to work around software that didn't do what it was "supposed" to do right off the bat...

  292. The Down Side of Self-Taught by Richard+Brandshaft · · Score: 1

    I was self-taught because in 1963, when I got out of school, there was no one teaching. They taught me FORTRAN syntax and how to submit a job on punch cards and threw me in the deep end. With considerable wasted time, at my employer's expense, I eventually caught on to good practice techniques that are elementary now. I am against self-teaching. With coding (as with probably theory and statistical inference) it is all too easy to think you know more than you do. Just because your program runs, and gives the right answer on a few test cases, does not mean your code is secure, the inevitable bugs will be easy to trace, or that anyone (including you) will be able to figure out what you did 6 months later. If many coders are self-taught, that may partly explain the sad state of software.

  293. Teach yourself is the best boot camp by Jannz2014 · · Score: 1

    Self-taught + learned on the job + books. Getting familiarity with various machine architectures, multiple languages, compiler quirks, and having to work within the tight performance constraints of earlier OS's & hardware definitely helped. There is a lot to be said for understanding how to do it yourself (even if you end up using some pre-packaged solution). Anything handed to you on a silver spoon loses its value when the silver rubs off.

  294. Slide Rule Club by Anonymous Coward · · Score: 0

    In 1966, the sponsor of my high school's slide rule club arranged a once-a-week night class at the local college - FORTRAN II on an IBM 7094.

  295. Does it? by Giant+Electronic+Bra · · Score: 1

    I'm not saying you're wrong, but education is FILLED with statements about how this or that 'helps' or 'works', or whatever without ANY objective evidence. I'd be the last person to resist someone studying the possible benefits of teaching simple algorithms, but if we're spending billions of $ on it when nobody has established its effectiveness, that isn't sensible.

    --
    "Malo periculosam, libertatem quam quietam servitutem." -- Jefferson
  296. In 1962 learning to code was selft taught by Anonymous Coward · · Score: 0

    There were no computer science college degrees available in 1962.

    I wrote my first program, in 1962, using the manual input keys on a CDC 1604 console. I used machine language for 2 years, then switched to assembly; much easier since I no longer had to figure out how far away a relative go to address was. I wrote assembly for the next 9 years. I did learn Fortran 60 for a class on a Fortran compiler, and Cobol because somebodies program was breaking the CDC 3600. I finally learned C in 1980. Got involved with network design for a lot of years, trying to make networks faster. It was 1997 before I first wrote code in Java, later in PHP. I didn't write code for the Internet until 1997, prior to that I wrote code that other people used to write code. In all but one (PHP) case, I was self taught.

  297. Self taught programming from access to Book and PC by unkmar · · Score: 1

    For 2 weeks I had a Tandy 1000HX available and a GW-BASIC book. So, self taught. I read, tested, imagined, and created. I know a fair amount about more programming languages than I have appendages on my normal human hands. I generally prefer functional languages with proper opening and closing block structures, such as {} or if, endif. I can't stand languages that rely on spacial alignment to determine block structures. My editor of choice is vim. I am quite adept at Object Oriented languages. I prefer interpreted over compiling. The compiling process is such a hassle since I tend to lean towards an agile style of coding. Sure, I try hard to get it right the first time, but that rarely happens. It stinks to wait through an insane compile ritual just to determine the whole thing is crap. I do like the results of a compiled program, but it would be great to have runtime interpreters for most languages. C and your minions, I'm looking at you.

    -- Unkmar

  298. Learning to code is only half the required study.. by Anonymous Coward · · Score: 1

    I'm 68 yo. Self taught. Cut my teeth on IBM 360/30 (32K ram) Taught myself assembly language then COBOL. Read and re-read IBM manuals that came with the machine. My favourite was "The Principles of Operation". Understood the internals of the compilers and the machine. Those were fun days! If I had a penny for every punch card I created I would be wealthy. Learned Job Control Language (JCL) the control language that told the machine what to do with the data following it and passed parameters to application programs as well as to the OS - (DOS at that time). We were one of the first companies to use the "DUCS - display unit control system" This allowed us to display characters on CRT's (cathode ray tube monitors with built-in keyboard) We could create blinking characters, read data iinput from the screen, display data from within the program or from files. It was magic back then!

    Because I understood how the machine worked, how the OS worked and how the compilers worked I had clearer expectations of what the applications could do under the HW/OS at the time. This comprehension made me a better programmer/systems analyst and has stuck with me all these years. I think future coders need to understand the concepts of operating systems, compilers and physical IO systems to be good at creating applications regardless of what the app is designed to do.

    Anyway,That's my two bits worth.

  299. coding for kids? by Anonymous Coward · · Score: 0

    I learned in the late 90s, self taught vb5 then vb6 the php, html vbscript,javascrip mysql then c# and java. (planet source code had tons of code to use for learning)
    i learned mainly because i kept getting booted in a chat program, learned how to use winsock and connect to servers and created basic chat firewalls. i only program now to create programs to do tasks i hate doing over and over or using unity 3d to make games for my kids.
    i am a concrete finisher by trade and never got past the 10th grade.
    do i consider myself elite or a good program? Not at all.
    i taught my 10 yr old how to make a timer/stop watch using msvs vb.net and he loved it.
    But i see all these visual programming languages now...its getting so simple to make a program do basic tasks...i remember writing my first pause/sleep function with a doevents and a integer lol
    ya i was lame...

  300. by hello world of course ðY by Anonymous Coward · · Score: 0

    mostly self learned and by looking other examples. testing testing and playing with code. by competing with others friends programmers

  301. Built the computer then learned coding by Anonymous Coward · · Score: 0

    Dad and I soldered together a Challenger 2P in the early 1970's and then wrote a BASIC booter for it.
    Then we got an old video game monitor for a display (from a tank game where the demo was burnt into the screen), and then got parts from Radio Shack and hand-made a modem that would work with a cassette recorder so we could save source code (and school papers) to a bakup format.

    Next we wrote a 'port' of Galaga for the 2P.

    After all that, its been 40 years of reading books about programming languages and trying to work on open-source projects to increase skills.

    1. Re:Built the computer then learned coding by Anonymous Coward · · Score: 0

      Dad and I soldered together a Challenger 2P in the early 1970's and then wrote a BASIC booter for it.

      Late 1970s, I think you mean. Or early 1980s?

  302. basic coding not really that hard by Anonymous Coward · · Score: 0

    I'm not really sure what they mean when they say "learn to code."

    Do you mean how variables, assignments, operators, and control statements work? This is extremely easy and should be simple to teach in a 5-credit community college class, alternatively one can learn on the internet with something like this:

    http://codingbat.com/java

    Do you mean how to build real, useful systems, be they web applications, networked computer games, or robots controlled by wifi? The best way is to find something you want to build and learn what you need to build it.

    What I feel is overlooked in this conversation is that we focus on what I would call "basic programming," loops, assignments, operators, etc., but this isn't really very hard, it's the things between being at that point and building useful systems where most of the work is involved, and it's not magic, it's just a matter of being curious and having access to resources to indulge curiosity including online resources, books, and maybe even more experienced people to ask questions of (which can be done on online forums).

  303. Past tense? by Anonymous Coward · · Score: 0

    "How did you learn to code?" I'm still learning. New techniques, algorithms and languages I haven't tried... there's more to know than I could possibly learn in a lifetime. I will never finish and that's exciting!

    A. B. C. = "always be coding."

    ALWAYS be coding.

    Always be coding!