mirror of
https://github.com/LCTT/TranslateProject.git
synced 2024-12-26 21:30:55 +08:00
commit
a014c1f62c
@ -1,300 +0,0 @@
|
||||
[#]: subject: "What was your first programming language?"
|
||||
[#]: via: "https://opensource.com/article/21/8/first-programming-language"
|
||||
[#]: author: "Jen Wike Huger https://opensource.com/users/jen-wike"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "CanYellow
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
What was your first programming language?
|
||||
======
|
||||
These 24 open source technologists share their programming origin
|
||||
stories.
|
||||
![Computer laptop in space][1]
|
||||
|
||||
We asked our contributors _What was your first programming language?_ but the question goes much deeper than that. There are stories to tell about who suggested it or what prompted you to learn it. If you were paid to do so, and what happened next. Then there's a lot it says about your age and what was going on in the world.
|
||||
|
||||
Let's hear a little bit about these 24 technologists' stories.
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *BASIC
|
||||
|
||||
*Were you paid to learn it? *Nope.
|
||||
|
||||
*Did you choose it? *Not really.
|
||||
|
||||
*Why? *It was Christmas of 1979, my parents (a school maintenance worker and a public health nurse) scrimped and saved the staggering US$1000 to buy a Tandy/Radio Shack TRS-80. It came with a ring binder that covered the complete BASIC programming language, and my Dad figured getting me to learn to write computer software would be a good way to keep me out of trouble.
|
||||
|
||||
*What happened next? *Mom and Dad would buy me and my younger brother books or subscriptions to popular magazines about "home computing," which included printed source code for a variety of games. We spent hours every weekend painstakingly typing and then debugging line by line with the accompanying checksums to find our typos. When the games got boring, we'd modify them... trivially at first just tweaking strings here and there to turn, say, a roman battle strategy game into a space battle strategy game; but later increasing the complexity of our changes and eventually starting to write terrible games of our own. Soon after that, we were sharing disks by mail and then over BBSes at 110bps.
|
||||
|
||||
Four decades later, I can collaborate on creations with the entire world and home connectivity has increased 7+ orders of magnitude, but part of me still misses those Saturday afternoons hunched over the keyboard, getting thoroughly trounced by my little brother at something truly terrible we created together. —[Jeremy Stanley][2]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *My first language was BASIC, which I learned in 7th grade.
|
||||
|
||||
*Were you paid to learn it? *Not unless you count being allowed to play Wolfenstein 3D, Minecraft, and Sim City in the computer lab at lunch as a perk for being interested enough in computer science to learn BASIC for fun.
|
||||
|
||||
*Did you choose it? *I don't think I was aware enough at the time to realize there might have been alternatives. This was what was available in the computer lab, and some older students knew enough about it to get me into it. I don't remember it even being part of the computer science class curriculum.
|
||||
|
||||
*Why? *At the time, it was just for fun. I used it exclusively to create text-based "Choose Your Own Adventure"-style games. Something about creating something artistic and fun from code and having the computer run it appealed to me. I'd used computers before, but this was the first time I made it do something for me.
|
||||
|
||||
*What happened next? *Perhaps not-so-coincidentally, I've used "Choose Your Own Adventure"-style games to teach myself every one of the programming languages I've learned the rest of my life.
|
||||
|
||||
This experience and the first exploration of computer games (both commercial and self-written) started me down a path toward getting involved in computers more deeply, always at school until my family bought our first computer when I was in 11th grade. Three years later, I translated this exploration into my first computer job as an intern for a research company that eventually hired me for my first "real" job out of college—working in their IT Support group.
|
||||
|
||||
I credit BASIC (and Sim City) with starting me down the path toward where I am now as an SRE, writing code and running clusters daily, some 30 years later. —[Chris Collins][3]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *I played with BASIC, but my first formal introduction was PL/I—learned it in my first programming course in college. —[Heidi Ellis][4]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *My first programming language was BASIC. This was in 1981. I learned it because I bought a home computer that booted into a BASIC editor, a TRS-80 Color Computer. It had a whopping 4K of RAM (not a typo) and could store programs on a cassette tape. I wanted to make the computer do things, so I learned how to instruct it using language it understood. Once you tap, for the first time, into that feeling of joy when your program runs successfully, the elation takes over, and you find yourself wanting to experience it again. Next thing you know, 40 years have passed. —[Matthew Helmke][5]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *My first programming language was BASIC. It was part of a computer science class I took in my first semester of college in 1977, so I was not paid to learn it nor did I choose it. But I always thought it was a great first step since it taught me how to think like a computer (and I had a good teacher). It didn't lead to anything right away as I went to graduate school in Economics, but years later I was an IT Project Manager. So I never was a coder, but I managed a few. —[Kevin O'Brien][6]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *BASIC
|
||||
|
||||
*Were you paid to learn it? *No.
|
||||
|
||||
*Did you choose it? *It was built into the Apple ][ computer my Mom brought home for the summer, and my choices were limited.
|
||||
|
||||
*Why? *It was either BASIC or 6502 Assembly, and BASIC seemed more attainable to sixth-grade-me.
|
||||
|
||||
*What happened next? *I went to the public library and found all the back issues of "Byte" magazine with source listings for Apple ][ programs. I spent a lot of time typing in programs that I could barely follow and learning the joys of debugging someone else's code (ok, I'm pretty sure I introduced most of the bugs). I was hooked. Several years later, senior-in-high-school me was very surprised and excited to learn that you could major in something called "computer science." The rest was history. —[Erik O'Shaughnessy][7]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *Fortran IV—tells you something about how long ago this was.
|
||||
|
||||
*Were you paid to learn it? *No, this was part of my first computer science course in college, so I guess that means I paid to learn it. This was on a mainframe, so after writing your program on paper, you bought your blank IBM punchcards, sat down at a keypunch to punch them out, then had to submit your collection of punchcards as a "job." Then the next day, you got your cards back with a printout from a line printer. If your program didn't run, you got nothing, or you might get pages and pages if you managed to create some sort of never-ending loop.
|
||||
|
||||
*What happened next? *At the tail end of college, they began using _Watfor_, a Fortran implementation from the University of Waterloo in Canada. Its advantage was that you could use it on a terminal, saving your programs on the central system, rather than the punchcards we loved so well. So you could run your program yourself and create your never-ending loops right away. Whoopee!
|
||||
|
||||
After Fortran, the next language that caught my eye was BASIC, which was a lot like Fortran, but handled strings much better. Fortran was awful with strings. This was mostly on an Amiga.
|
||||
|
||||
After switching to Linux, my next language was Perl, which oddly enough seemed like a fairly easy transition from BASIC. After Perl, came Python, a language less stiff with syntax. —[Gregory Pittman][8]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *Waterloo Fortran IV in 1974-5, my first computer science course—taken in the second year—back when I was sorta sure I wanted to major in computer science. We also learned a bit about IBM 360/370 assembler later in the year. Back in those days, the lower-year courses at UBC used keypunches, and there was a "student terminal" where you would cue up with your deck of cards and exchange a "blue ticket" for a run of your deck, then walk around behind the IBM line printer to pick up your output. If you were careless or distracted you might put your deck on top of the printer—even though there was a sign saying "don't put your card deck on top of the printer, in case it opens"—and of course if you did, the printer would that very moment run out of paper or have a jam and obligingly raise its lid, which caused your card deck to spill to the floor and become an unorganized mess.
|
||||
|
||||
In my third year, still in computer science, I took a bunch of courses—the mainstream third-year course featuring PL/I, a one-semester 360/370 Assembler course, the two honors courses on computational theory, a numerical analysis course, "the twelve languages of MTS," and a bunch of math courses.
|
||||
|
||||
In my fourth year, I was hired by the applied math institute as a research assistant. At that point, I was getting paid for writing Fortran programs for a small group of mathematicians mostly interested in solving differential equations. Also, by then, I realized that computer science wasn't for me, and I had switched to math. I did continue to take some computer science courses—optimization, more numerical analysis. Looking back, those were my first steps down the data science pathway.
|
||||
|
||||
My first post-university job was programming, mostly in Fortran and in PL/I and SPSS, a statistics language. As well, I learned how to use MPSX, an IBM linear programming utility. —[Chris Hermansen][9]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *In high school, a teacher who had zero experience with computers was asked to teach computer programming as part of an experiment: My school had not tried this before. Xerox Corp. provided the school with a Model-33 teletype and a 110-baud acoustic coupled modem, which gave us access to their XDS Sigma 7 mainframe running the CP-5 time-sharing system. BASIC was the order of the day.
|
||||
|
||||
_Were you paid to learn it?_ Do grades count?
|
||||
|
||||
*What happened next? *A few of us started "poking a stick" at the machine to see what would happen if we didn't type "BASIC" at the prompt... which lead us to discover that there were _other_ languages! And other stuff too! If I recall, there were (at least) three separate Fortran compilers—Fortran, FLAG (Fortran Load And Go—which compiled lightning-quick, or what passed for "quick" in the day), and at the opposite end EFFORT—or possibly EFORT, but pronounced "effort." S-L-O-W to compile, but it did what appeared to be, to our young eyes, amazing optimization of the code. Also, a brief foray with a "weird" keyboard with all sorts of symbols, and APL, where backspace was not used to erase anything but to overstrike operators to make other operators. —[Kevin Cole][10]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *Atari PILOT and Atari BASIC. My family bought an Atari 1200XL when I was a kid, and while I started out just using it for games and some art programs, there were two cartridges that my Dad said were "for adults" and "I wouldn't like them because they're not for kids." So obviously, I was incredibly curious. One day I decided to check them out. I was totally confused at first but then found the book that he had about them, and I typed in the sample code and thought it was really cool that I could make things happen. I never was able to write anything entirely on my own, but I took the sample code and just changed parts until I either got it to do something else or broke it and had to undo those changes. I've been meaning to try it out again and see how much I remember, but I just haven't had the time. —[JT Pennington][11]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *ELAN. It was a superb language for the time. It is important to note it was tightly coupled with the OS EUMEL so we could do parallel computing.
|
||||
|
||||
_Were you paid to learn it?_ It was an after-school activity.
|
||||
|
||||
*Did you choose it? *No.
|
||||
|
||||
*Why? *I wanted to learn piano, and my parents said I would get one if I take a typewriter course. Next door was the after-school computer club. I thought that was more interesting. Unfortunately, I still don't know how to play the piano as computers kept me busy till today.
|
||||
|
||||
*What happened next? *When I started at the university, they still had punch cards and Fortran. I was lucky as the high school teacher allowed me to use the parallel computer at the high school for programming. In between, I also tried BASIC, but that was just inferior and boring. I then looked at Pascal, which was not any better than ELAN. After C, Modula-2, and Ada, I finally found Occam and did lots of stuff in Occam on transputers. That was exciting as we could do more parallel computing. Having access to 64 of them was pretty cool. Also, plugging in various network configurations was exciting. This was decades ago. I see a difference between yesteryear's high school students and today's. While we initially had few resources (I could not afford a computer till I was in my fourth year at university), today's computers are commodities. Furthermore, the combination of computers and robotics such as FLL (FIRST Lego League) makes it possible to lower the entry barrier. However, today also students are distracted by accessibility to video games and access to very cool graphics. Ready-made products (videogames, cell phones, tablets) may limit the available "time" today's students have to learn computer science in their free time. I have to admit that if I would have been offered today's video games when I grew up, I may have had a very different outlook on computer science and may not have been labeled by my high schoolmates "nerd," but the video gamer.
|
||||
|
||||
Unfortunately, I have no time to do video games as my RTX3090 plays AI algorithms … The toy I really want for me is an A100 and a DGX which I use now remotely. I would argue that due to Google colab and accessibility via Jupyter, access to AI can be lowered to the high school level. However, this all depends on the high school teacher that introduces you to it. If you just have one that teaches you block-programming instead of, for example, Python on the lego robots or one that uses scratch instead of Google colab, then we do not leverage the potential that these students have in their early years and can leverage this superb infrastructure. —[Gregor von Laszewski][12]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *I got into Logo on an Apple, a computer language developed at MIT by Seymour Papert and others in 1967. It was a language designed for education. It's a subset of Lisp.
|
||||
|
||||
I learned it as part of a graduate education program I was involved with at the time. As part of that program, I taught geometry to a fifth-grade student using the Logo programming language. While teaching this student the computer language and the curriculum, I discovered that my own trouble and learned helplessness with mathematics came from an inability to visualize the material. After completing the graduate course, I used the Logo language to teach other students geometry and mathematics using the same curriculum and programming language. The students and I learned math and developed some beautiful graphics in the process, and we actually programmed a 'turtle' robot that drew our images on large pieces of paper on the classroom floor. My experience with programming led me to look for other ways to bring mathematics to life for students, which led me to Python and the "turtle' module. Lately, I've been teaching students how to write Python programs that feature an 'on-screen' turtle robot that can create beautiful graphics while at the same time introducing those students to the Python language and logical thinking skills. —[Donald Watkins][13]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *ZX81 BASIC.
|
||||
|
||||
I was still at school, probably aged 10 or 11, when a friend got a ZX81—so I taught myself BASIC and wrote a couple of simple programs I could try out on his machine. Christmas 1982, I got my own ZX81 and pretty soon outgrew the hardware and moved onto a ZX Spectrum in late 1993, by which time I was also programming a little in Z80 assembly.
|
||||
|
||||
A couple of years later, I also picked up an early CASIO handheld that ran BASIC. It was one of the PB series, possibly the PB-200, but I can't remember the exact model version. I managed to convince my teachers to let me use it for my O-Level math exam at the age of 16 in the UK. I did take a look at some other languages but didn't really learn any until I started on Ada at university. —[Steven Ellis][14]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *My first ever programming language was BASIC in the early eighties.
|
||||
|
||||
One of my relatives bought a C64 for their kids to get started with learning computers. They only used it for gaming, and I was also invited. But they also had a book about BASIC, and I was curious and gave it a try. I wrote some shortcode, I did not even know how to save it, but it was exciting to see that the computer does what I say to it. This means that I was not paid to learn it, and it was not my choice. It was the language available to me. Obviously, when I got my first computer a few years later, an XT compatible box, I first wrote some code in GW-BASIC, the dialect of BASIC available with DOS.
|
||||
|
||||
*What happened next? *The first time I really choose a programming language was Pascal. I asked around, checked some books, and it seemed to be a good compromise between features and difficulty. First, it was Turbo Pascal, and I coded all kinds of simple games and graphics in it. I loved Pascal, so in my university years, I even used it (well, FreePascal and Lazarus) for measurement automation and modeling how pollution spreads in groundwater. —[Peter Czanik][15]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *The language of the Casio fx-7200G ([a variant of][16]). I don't think it has its own name.
|
||||
|
||||
*Were you paid to learn it? *No.
|
||||
|
||||
*Did you choose it? *No.
|
||||
|
||||
*Why? *I got this programmable calculator (the box said "computer"...) for my 13th birthday.
|
||||
|
||||
*What happened next? *A year later, first high-school year, I studied their Pascal, even though we didn't have books for it—the main Pascal book our teacher recommended was university-level, considered by him to be a bit too hard for us—and the main text we used for theory and exercises was actually using BASIC, so I also learned some BASIC (unintentionally, at least from the teacher's POV).
|
||||
|
||||
I considered myself a latecomer—some kids in my class had computers with BASIC (commodore 64, Spectrum Sinclair, Amstrad) at home, and I already knew a bit of BASIC before high school, and along the first years, there was a semi-tension between us—me, and those who knew BASIC and didn't appreciate the advantages of Pascal.
|
||||
|
||||
Later on, I went to university (math and computer science), where students could use DOS PCs or a few Macintoshes, or terminals (text ones, X Terminals if you were lucky and one was available), mainly to connect to shared SunOS 4 machines. In my second year (in 1993), someone told me about Linux, which I could run at home. I already bought myself a newer PC (an AMD 386SX-compatible. Only after I "decommissioned" it, ~ 8 years later, I realized it was AMD and not an Intel 386, which is what I thought I was buying) before knowing about Linux, learning my 8088 PC isn't suitable for running more modern OSes, and so I tried Linux, which it took me several months to get installed with only 2MB RAM—soon after that, I upgraded to 4MB and then seldom rebooted to DOS (which I kept as a dual-boot option for several years). I still remember my astonishment and excitement at being able to run a UNIX-like OS, even with X windows (after upgrading to 4MB RAM), all at home.
|
||||
|
||||
In terms of languages, in the university, we studied/used Pascal (first intro course), C (intro to systems programming course), and then some course-specific ones—Eiffel (in the OOP course), MatLab (for a workshop), etc.
|
||||
|
||||
My first real job was in a project written on Unix (we used mainly DECstation machines with Ultrix), mainly in Lisp (Lucid Common Lisp) and C, where I studied Lisp, and from which I still have very good memories, even though I never used it later. I managed to make the project semi-work on a PC with Linux, as a personal side project, using a copy of LCL for SCO Unix, which I managed to make work on Linux with the `ibcs2` module and recompiling GNU `libc` with a cross-compiler toolchain (`GCC/as/ld` on Linux to generate COFF binaries for SCO). I was quite proud to demonstrate the application to my manager—something which normally needed a workstation costing ~ $30K, running on a $5K PC. But this never went to production. —[Yedidyah Bar David][17]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *TI-BASIC
|
||||
|
||||
*Were you paid to learn it? *No, but then, I was 10.
|
||||
|
||||
*Did you choose it? *No.
|
||||
|
||||
*Why? *It was the only language available on the TI-99/4A! Well, there was the "Extended Basic," too, but that was just an extended instruction set. You could actually write decent games in 16Kb of RAM.
|
||||
|
||||
*What happened next? *The next step was to type in programs that were shipped in print magazines and record them on audio cassette tapes. But with my brother, we took that one step further—we went live on radio to broadcast the resulting sound for others to record! With a clear recording and enough error correction, you could distribute and download programs wirelessly back in 1985. —[Thierry Carrez][18]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *GW-BASIC
|
||||
|
||||
*Did you choose it? *No.
|
||||
|
||||
_Why?_ It was standard education for beginners.
|
||||
|
||||
*What happened next? *I started in a company for computer hardware specialist. —[Hüseyin GÜÇ][19]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *BASIC, on the VIC-20.
|
||||
|
||||
*Were you paid to learn it? *Nope.
|
||||
|
||||
*Did you choose it? *Only insofar as I chose the computer.
|
||||
|
||||
*Why? *I figured that the VIC would be at least mostly compatible with the PET I had seen in school. Also, it had a decent keyboard.
|
||||
|
||||
*What happened next? *Those were the days of programming because there was no other way to do anything with it—learned a lot. —[Bob Murphy][20]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *It was the year 2004-05 if I recall. I was in school, maybe a fifth-grader, I was introduced to BASIC. Before that, I had learned a little bit of something called "Window Logo."
|
||||
|
||||
*Were you paid to learn it? *My parents paid for my school.
|
||||
|
||||
*Did you choose it? *Not at all.
|
||||
|
||||
*Why? *Part of the curriculum my school decided on.
|
||||
|
||||
*What happened next? *It definitely piqued my interest in programming, and I went on to learn C/C++ through extra-curricular courses outside of my school. My parents encouraged it and managed to pay extra fees somehow. I often ended up as the only "kid" in the entire computer institute. I was the only one learning a programming language while others mostly learned MS Office or PhotoShop etc. LOL. Well, the rest is history. —[Kedar Vijay Kulkarni][21]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *Fortran, because I'm old.
|
||||
|
||||
*Were you paid to learn it? *No, I paid to learn it by taking a computer science class.
|
||||
|
||||
*Did you choose it? *No, it was the only choice. I was lucky that we had terminals to work on instead of the punchcards that my poor husband used when he learned how to program in Fortran.
|
||||
|
||||
*Why? *I was a humanities major (English and Anthropology double major), and I was getting close to graduation and actually having to find a JOB. I figured a computer class might make that possible. As it has turned out, that particular programming class was one of the more valuable ones that I took in terms of marketable skills. It provided a good foundation for learning Python, understanding Git, and editing and writing documentation for Red Hat.
|
||||
|
||||
*What happened next? *I went home and taught myself BASIC on the TI-99 that my parents had bought (I'm not sure why they bought it, though—maybe for my little brother?). That early foundation in Fortran (of all things) made it easier to use the early PCs before Windows existed because I could figure out DOS. A humble beginning for sure. —[Ingrid Towey][22]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *In 2001, I learned Java SE 1.2 by reading the book _Goto Java_ from Addison-Wesley.
|
||||
|
||||
*Were you paid to learn it? *No, I was still in school.
|
||||
|
||||
*Did you choose it? *Yes.
|
||||
|
||||
*Why? *I wanted to create interactive websites with Java Applets.
|
||||
|
||||
*What happened next? *I went to college and got in touch with FOSS and learned ANSI C. —[Joël Krähemann][23]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *
|
||||
|
||||
I was going to write an article for this, but I already wrote that one: [You don't need a computer science degree to work with open source software (6 Aug 2020)][24].
|
||||
|
||||
Highlights from that article:
|
||||
|
||||
Our parents bought an Apple II+ clone called the Franklin ACE 1000. My brother and I taught ourselves how to program in AppleSoft BASIC. Our parents bought us books, and we devoured them. I learned every corner of BASIC by reading about something in the book, then writing a practice program. My favorite pastime was writing simulations and games.
|
||||
|
||||
I stayed with BASIC for a long time. But I began to learn other programming languages when I entered university. I was a physics student, and as part of our numerical analysis prerequisite, we had to learn Fortran. Having already learned BASIC, I thought Fortran was pretty easy to pick up. Fortran and BASIC were very similar, although Fortran was more limited in my experience.
|
||||
|
||||
My brother was a computer science major at a different university, and he introduced me to the C programming language. I immediately loved working in C! It was a straightforward programming language that gave me a ton of flexibility for writing useful programs. But I didn't have room in my degree program to take a class that didn't apply to my physics major. So, instead, I taught myself C by reading books and combing through the library reference guide. Each time I wanted to learn a new topic, I looked it up in the reference guide and wrote a practice program to exercise my new knowledge.
|
||||
|
||||
Over time, I leveraged what I'd learned to pick up other programming languages. I wrote a ton of Unix Korn shell scripts, Linux Bash scripts, and AWK scripts. I wrote small utilities in Perl, and later wrote Perl CGI and PHP pages for websites. I learned enough LISP to tweak my copy of GNU Emacs, and enough Scheme to work on a project that used GNU Guile. —[Jim Hall][25]
|
||||
|
||||
* * *
|
||||
|
||||
*What was your first programming language? *My first programming language was BASIC, Atari BASIC to be exact.
|
||||
|
||||
My family had an Atari 400 home computer in the early 1980s. I played games on it, but it also came with a cartridge for the BASIC language. It included a cassette recorder (Atari 1010). In those days, programs could be stored on standard audio cassette tapes. The Atari 400 didn't have internal storage, so I learned how to save my programs to cassette and later reload them. In addition to the usual "Hello World" programs, I wrote some that allowed for controlling sound and graphics using a joystick. I still remember the PEEK and POKE commands needed for setting and retrieving certain settings, such as a color or a sound setting.
|
||||
|
||||
_Were you paid to learn it?_ No.
|
||||
|
||||
_Did you choose it?_ Yes, it was the one language included with the Atari, so I decided to give it a try—and I did enjoy programming it.
|
||||
|
||||
*What happened next? *After a while, I guess I lost interest in Atari and computer gaming altogether. It wasn't until the mid-nineties that I became interested in computers and programming again when I attended computer science classes to earn a minor in CS. Those courses taught me languages such as C and Assembly and many general computer and networking skills. I later learned Java as part of my Master's degree. I have only done a small amount of formal coding during my career, mostly a little Java in a ColdFusion environment in the mid-2000s. In terms of coding, shell scripting has been my mainstay, mostly BASH and Windows, but I have coded for specific purposes whenever needed. I've used Job Control Language (JCL) for automating file transfers between mainframe systems. I've also used Python to feed REST API query results back to an enterprise monitoring dashboard. I still think that early experience with BASIC was valuable because I gained a respect for software and programming. —[Alan Formy-Duval][26]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/8/first-programming-language
|
||||
|
||||
作者:[Jen Wike Huger][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[译者ID](https://github.com/译者ID)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jen-wike
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_space_graphic_cosmic.png?itok=wu493YbB (Computer laptop in space)
|
||||
[2]: https://opensource.com/users/fungi
|
||||
[3]: https://opensource.com/users/clcollins
|
||||
[4]: https://opensource.com/users/heidi-jc-ellis
|
||||
[5]: https://opensource.com/users/matthew-helmke
|
||||
[6]: https://opensource.com/users/ahuka
|
||||
[7]: https://opensource.com/users/jnyjny
|
||||
[8]: https://opensource.com/users/greg-p
|
||||
[9]: https://opensource.com/users/clhermansen
|
||||
[10]: https://opensource.com/users/kjcole
|
||||
[11]: https://opensource.com/users/jtpennington
|
||||
[12]: https://opensource.com/users/laszewski
|
||||
[13]: https://opensource.com/users/don-watkins
|
||||
[14]: https://opensource.com/users/steven-ellis
|
||||
[15]: https://opensource.com/users/czanik
|
||||
[16]: https://en.wikipedia.org/wiki/Casio_fx-7000G
|
||||
[17]: https://opensource.com/users/didib
|
||||
[18]: https://opensource.com/users/thierry-carrez
|
||||
[19]: https://opensource.com/users/hguc
|
||||
[20]: https://opensource.com/users/murph
|
||||
[21]: https://opensource.com/users/kkulkarn
|
||||
[22]: https://opensource.com/users/i-towey
|
||||
[23]: https://opensource.com/users/joel2001k
|
||||
[24]: https://opensource.com/article/20/8/learn-open-source
|
||||
[25]: https://opensource.com/users/jim-hall
|
||||
[26]: https://opensource.com/users/alanfdoss
|
@ -0,0 +1,378 @@
|
||||
[#]: subject: "What was your first programming language?"
|
||||
[#]: via: "https://opensource.com/article/21/8/first-programming-language"
|
||||
[#]: author: "Jen Wike Huger https://opensource.com/users/jen-wike"
|
||||
[#]: collector: "lujun9972"
|
||||
[#]: translator: "CanYellow"
|
||||
[#]: reviewer: " "
|
||||
[#]: publisher: " "
|
||||
[#]: url: " "
|
||||
|
||||
你的第一门编程语言是什么?
|
||||
======
|
||||
|
||||
以下24位开源技术专家分享了他们开始编程之旅的故事。
|
||||
|
||||
![Computer laptop in space][1]
|
||||
![空中的笔记本电脑][1]
|
||||
|
||||
我向我们的贡献者提问了这个问题:_你的第一门编程语言是什么?_。不过这个问题并不像看上去那样简单。下面的故事谈到了是谁向你建议了第一门编程语言,是什么促使你学习它。如果你是付费学习的,接下来又发生了什么。这里还涉及到你所在的阶段以及这个世界上正在发生的事情。
|
||||
|
||||
让我们倾听这24位技术专家的故事吧。
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
|
||||
*你花钱学习的吗?
|
||||
*并没有
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*不尽然
|
||||
|
||||
*为什么这么说?
|
||||
*那是1979年的圣诞节,我的父母(他们分别是学校的一名维护人员和一名公共卫生护士)省吃俭用地攒下了惊人的1000美元买下了一台 Tandy/Radio Shack TRS-80。它随附了一份涵盖了完整的 BASIC 编程语言的活页夹。我的父亲认为让我学习开发计算机软件是一个很好的将我从困境中解脱出来的方式。
|
||||
|
||||
*接下来发生了什么?
|
||||
*我的父母给我和我的兄弟买了与“自学编程”相关的书籍,也订阅了相关的流行杂志。这些资源中提供了许多游戏的打印版的源代码。我们每个星期都花费大量的时间编写程序,然后一行一行地使用电脑自带的检查程序找出我们的打字错误并调试程序。当我们厌倦了游戏以后,我们开始修改它们—。我们一开始只是简单地修改零零散散的字符串将一个罗马战斗策略游戏修改为一个太空战斗策略游戏。不过后来随着我们所做修改的复杂度的增加,我们最后开始开发我们自己的恐怖游戏。此后不久,我们开始通过信件分享我们的游戏磁盘,随后也通过当时仅110bps网速的<ruby>网络论坛<rt>BBS</rt></ruby>)分享我们的游戏。
|
||||
|
||||
40年之后,我可以同全世界共同创作我们的成果,家庭网络连接性能提升了七个数量级以上,但是我仍然时常怀念那个周六,那一天在我和我的兄弟共同创造的真实的恐怖游戏当中我被我的兄弟击败。[Jeremy Stanley][2]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我的第一们编程语言是 BASIC,我在7年级的时候开始接触它。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*如果你认为允许在午餐时间在计算机实验室里玩德军总部3D(LCTT 译注:Wolfenstein 3D),我的世界(LCTT 译注:Minecraft),模拟城市( LCTT 译注:Sim City)这些游戏是对计算机科学足够感兴趣并学习 BASIC 语言的的花费的话,那就算是吧。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*我不认为我当时曾确切地认识到还有第二选择。这是当时计算机实验室中仅有的内容,而且一些学长对它足够了解才能让我也参与其中。我记得它不曾是计算机科学课程的一部分。
|
||||
|
||||
*为什么这么说?
|
||||
*当时,我学习 BASIC 仅仅是因为乐趣。我仅仅用它来创造基于文本的“选择你自己的探险之旅”风格的游戏。从源代码创建一些兼具艺术性与趣味性的东西并让计算机运行它们这件事极大地吸引了我。我此前也使用过计算机,但这是我头一次让它为我做一些事情。
|
||||
|
||||
*接下来发生了什么?
|
||||
*或许并不是巧合,我后来使用“选择你自己的探险之旅”风格的游戏来学习我后来接触到的每一种编程语言。
|
||||
|
||||
这一经历以及在计算机游戏中的首次探索(即有商业游戏也有我自创的游戏)开始了我进一步深入计算机领域的旅程,我总是待在学校里直到我11年级时我的父母买回了我们家的第一台电脑。三年后,我将这一段旅程转化为了我的第一份计算机领域的工作,我成为了一家研究公司的实习生,这家公司最终录用了我为他们的 IT 支持组的一员,这是我大学毕业后的第一份“真正意义上”的工作。
|
||||
|
||||
将近30年后,我坚信是 BASIC (以及模拟城市) 开启了我现在成为 SRE 的旅程,开启了我日常的编程与计算机阵列运行工作。—[Chris Collins][3]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我玩过 BASIC 语言,但是我的第一门正式入门语言是 PL/I。我在我大学时的第一次编程课上学习它的。—[Heidi Ellis][4]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我的第一门编程语言是 BASIC 语言。那是在1981年。我学习它是因为我买了一台能够启动进入 BASIC 编辑器的家用电脑,一台 TRS-80 彩色计算机。它拥有相当出众的4K容量的<ruby>随机存储器<rt>RAM</rt></ruby>,而且它还可以在盒式磁带上存储程序。我希望让电脑做一些事情,因此我开始学习如何使用它能够理解的语言向它下达指令。一旦你第一次体验到程序成功运行的欣喜若狂的感受,你会发现我还想再次体验这种感觉。你还需要知道的是,如今已经过去40多年了。—[Matthew Helmke][5]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我的第一门编程语言是 BASIC。它是1977年大学第一学期中我的计算机科学课程的一部分,因此我既没有自己花钱学习它也不是自己选的它。不过我始终认为这是非常重大的第一步,因为它使我学会了如何像计算机一样思考(我有一个好老师)。随着我从经济学院毕业,这门课程并没有立即促成一些事情。不过,多年之后,我成为了一名 IT 项目经理。所以我没有做过码农,不过我管理过他们。 —[Kevin O'Brien][6]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*BASIC
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没有。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*它是内置在 Apple ][ 计算机里的,这台计算机是我母亲在暑假带回来的,我的选择很有限。
|
||||
|
||||
*为什么这么说?
|
||||
*这台计算机里只有 BASIC 语言和6502汇编语言。显然,BASIC 语言看上去对六年级的我更具吸引力。
|
||||
|
||||
*接下来发生了什么?
|
||||
*我去公共图书馆,找出了所有刊载了 Apple ][ 程序的源代码清单的往期的 Byte 杂志。我花了很多时间输入这些我几乎无法理解的程序并享受调试其他人代码的乐趣(好吧,我更确定的是,我引入了更多的错误)。我简直入迷了。几年以后,在高中毕业班的时候,当我知道可以主修某种称作“计算机科学”的课程的时候,我既惊讶又激动。剩下的就是历史了。—[Erik O'Shaughnessy][7]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*Fortran IV,你应该已经知道这是多少年前的事情了。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没有,这是我大学的计算机科学课程的一部分,因此我想也可以认为我是花钱学习它的。这是在中央主机上的,因此你在纸上写好你的程序以后,你需要带上你的空白的 IBM 穿孔卡,然后坐在一台键控打孔机前把你的程序打孔出来,然后将你的穿孔卡片集作为一项“作业”提交上去。然后第二天你就可以拿回你的穿孔卡片,上面带有线列式打印机输出结果。如果你的程序没有运行,你得不到任何输出,或者如果你制造了某种死循环,你则可能拿到一页又一页的结果。
|
||||
|
||||
*接下来发生了什么?
|
||||
*在我的大学生涯快结束的时候,学校开始使用 _watfor_ 编译器,这是一款来自加拿大的滑铁卢大学的 Fortran 实现。它的优势在于你可以在终端中使用它,并在中央主机中保存你的程序,而不需要使用我们曾经非常喜爱的穿孔卡。因此你可以自行运行你的程序,也可以立即创造死循环的程序。欧耶!
|
||||
|
||||
Fortran 之后,吸引了我的眼球的另一门编程语言是 BASIC,它与 Fortran 有很多相似之处,不过能够更好的处理字符串。Fortran 在字符串方面太糟糕了。我主要是在 Amiga 计算机上做这些事情的。
|
||||
|
||||
在转向 Linux 后,我接下来接触的语言是 Perl,奇怪的是,这似乎算是一个从 BASIC 语言转向的相当容易的过渡。接着 Perl 之后,就是 Python,一门在语法上更加灵活的语言。—[Gregory Pittman][8]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
我1974年学习的 Waterloo Fortran IV,这是入学第二年时我上的第一门计算机科学课程,当时我几乎确信我想要主修计算机科学了。这一年的稍晚时间,我们还学习了一些有关 IBM 360/370 汇编器的内容。回溯那段时间,在<ruby>英属哥伦比亚大学<rt>UBC</rt></ruby>的低年级课程中我们使用的是打孔机,我们可以使用一个“学生终端”来连接我们的卡片盒并得到一张供我们的卡片盒运行一次的“蓝色凭证”,然后走到 IBM 线列式打印机后面拿回我们的程序输出。即使旁边明明写了一张提示"不要将你的卡片盒放在打印机上,以免打印机(上盖)开启",不过如果你还是不注意,将你的卡片盒放到了打印机的上面。此刻,打印机可能刚好用完了纸或者发生了卡纸,于是主动打开了上盖,你的卡片盒将会掉到地上变成一团糟。
|
||||
|
||||
在我主修计算机科学的第三学年,我选了一系列的课程——一门主流的三年级编程语言第一编程语言(LCTT 译注 PL/I),一学期的360/370汇编器课程,两项优良的计算机理论课程,一门数值分析课程,“密歇根终端系统上的十二种编程语言”以及一系列数学课。
|
||||
|
||||
在我的第四学年,我被应用数学研究所聘为研究助理。此时,我主要通过为一个主要兴趣在于求解微分方程的小组编写 Fortran 程序来获取报酬。同时,也是从那时开始,我意识到计算机科学并非我的最爱,我开始转向数学。我仍然继续学习了一些计算机科学课程——优化课程以及更多的数值分析课程。回过头看,这是我走上数据科学之路的第一步。
|
||||
|
||||
我毕业之后的第一份工作还是编程,主要是使用 Fortran 、PL/I 以及 SPSS 编程,SPSS 是一种统计编程语言。此外,我也学会了如何使用 MPSX(LCTT 译注:拓展数学编程系统,Mathematical Programming System Extended),IBM 的一种线性规划通用语言。—[Chris Hermansen][9]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*在我高中的时候,作为一项实验,一个没有任何计算机经验的教师被要求教我们计算机编程。我的学校之前从来没有尝试过这类课程。施乐公司(LCTT 译注:Xerox Corp)给我们提供了一台 Model-33 型电传打字机和一台110波特的声耦调制解调器,这使得我们可以访问他们运行 CP-5 分时系统的 XDS Sigma 7大型机。BASIC 是当时的趋势。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*上学算吗?
|
||||
|
||||
*接下来发生了什么?
|
||||
*一些学生开始尝试在这台机器上“捅一棍子”看看如果我们不在提示符位置输入“BASIC”会发生什么,这使我们发现这台机器上还内置了 _其他的_ 编程语言!其他的教职工也发现了!如果我没有记错的话,这台机器上至少还有三个独立的 Fortran 编译器——Fortran,FLAG(Fortran Load And Go——FLAG的编译速度在当时称得上“快”了,简直是快如闪电)。剩下的编译器 EFFORT 则是另一个极端——也可能是 EFORT 只是发“effort”的读音,它的编译速度—相—当—慢,不过在我们眼里,它的确看上去拥有极致的代码优化。除此之外,我也短暂尝试过 APL 编程语言(LCTT 译注:[A Programming Language][T1])以及(用于 APL 语言编程的有各种符号的“怪异”键盘)。在 APL 语言中,退格键不是用来删除已经输入的内容反而是重写操作符为其他的操作符。—[Kevin Cole][10]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*雅达利 PILOT 语言以及雅达利 BASIC 语言(LCTT 译注:Atari)。我的父母给孩童时期的我买了一台雅达利 1200XL 计算机,我开始只是用他们来玩游戏或者完成一些艺术课程。家里留下了两盒卡带,我父亲告诉我它们是“适合成人使用的,因为不是为小孩子设计的,我不会对他们感兴趣”。显然,我无比好奇。终于有一天我禁不住找出并装载了它们。刚开始的时候我一头雾水,直到我找到一本我父亲买的有关这两盒卡带的书籍。我输入了书上的样例,发现能够实现一些事情的感觉是相当酷的。我当时还不能完全独立地编写程序,不过我可以拿来书中的样例然后仅仅更改其中的部分内容直到我能让它完成一些其他的事情或者使之崩溃进而只能撤销这些更改。我曾经计划再次尝试一遍,看看我还能记得多少,不过我一直都没有抽出时间(来做这件事)。—[JT Pennington][11]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*ELAN。这是那一时期相当优秀的编程语言。尤其需要重点说明的是它是与 EUMEL 系统紧密结合的,因此可以用它做并行计算。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*它是一项课后活动。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*不是
|
||||
|
||||
*为什么这么说?
|
||||
*我想学习弹钢琴,我的父母跟我说如果我愿意参加打字课的话我就可以得到一台钢琴。打字课的对门就是课后计算机俱乐部。我觉得这有趣多了。不幸地是,计算机工作使我抽不开身,时至今日我也不会弹钢琴。
|
||||
|
||||
*接下来发生了什么?
|
||||
*当我上大学的时候,它们还在使用打孔卡和 Fortran。我很庆幸我的高中老师允许我使用学校的并行机编程。此间,我也尝试了 BASIC 语言,但这是比不上我学习的 ELAN,而且很枯燥。后来我转向 Pascal,Pascal 也比不上 ELAN。再后来就是 C 语言,Modula-2 语言和 Ada 语言,我最后发现了 Occam 并且使用它在晶体电脑上完成了很多任务。这是相当激动人心的,因为我们可以做更多的并行计算。拥有其中64台的访问权是一件相当酷的事情。同时,插入各种网络配置也令人兴奋。这是几十年前的事情了。我看到了往日的高中生与今日的高中生的不同点。我们当时几乎没有资源(我直到大四的时候才买得起一台电脑),今天电脑已经习以为常了。而且,电脑与类似 FLL(FIRST Lego League) 这样的机器人使得降低编程的准入门槛成分可能。然而,今天的学生们也被随处可及的电子游戏以及其中炫酷的图像所分心。现成产品(像电子游戏、手机以及平板电脑等)使得今天的学生能够从闲暇时间中抽出的用来学习机算机科学的时间很有限。我必须承认如果在我长大之后,也接触到了今天这样的电子游戏,我可能对计算机科学拥有完全不同的看法,并且也不会被我的同学们视作“书呆子”,而是成为一个游戏玩家。
|
||||
|
||||
不幸的是,我没有时间玩游戏,我的 RTX3090 显卡在运行人工智能算法。我真正想要的玩具是一台 [A100 GPU][T2]以及一套我现在远程使用的[DGX 系统][T2]。我认为由于[Google colab][T3]以及其通过 Jupyter 可访问的特点,对人工智能的接触可以下放到高中水平。然而这一切都取决于带领你入门的高中教师。如果你的编程老师只是教你块编程而不是,举例而言,像基于乐高机器人的 Python,或者只是教你使用 scratch 而不是 Google colab。那么我们就不能利用那些学生早年间的潜力,但是可以利用这些出众的基础设施。—[Gregor von Laszewski][12]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我沉浸在一台 Apple 电脑上的 Logo 编程语言里了。Logo 编程语言由麻省理工的西蒙· 佩珀特等人在1967年开发。这是一种为了教育目的开发的编程语言,是 Lisp 语言的一个子集。
|
||||
|
||||
我学习它是作为当时我参与的一项毕业教育项目的一部分内容的。作为该项目的一部分,我使用 Logo 教一名五年级学生的几何学。在教这名学生 Logo 编程语言和这门课程的时候,我发现我在数学上的麻烦与无助在于无法可视化这些材料。在完成我的毕业课程以后,我使用 Logo 语言继续以相同的课程与编程语言交其他学生们几何与数学。这些学生与我学到了数学也在这一过程中开发了一些优美的图形,我们实际上开发了一个“乌龟”机器人,它可以在放在教室地板上的巨幅纸张上绘制我们的图像。我的编程经历让我开始寻找其他的方式来将数学带入学生的生活中,这让我开始接触 Python 以及 Python 中的“乌龟”模块。后来,我开始教学生们写 Python 程序,这些程序可以在屏幕上显示一个乌龟机器人,这个乌龟机器人可以在屏幕上创建优美的图像。与此同时,我也开始向这些学生引入 Python 编程语言与逻辑思考能力。—[Donald Watkins][13]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*ZX81 BASIC。
|
||||
|
||||
我还在上小学的时候,大概10岁或者11岁的样子,我的一个朋友得到了一台 ZX81 计算机。于是我自学了 BASIC 并编写了一些简单的程序尝试在他的机器上运行。1982年的圣诞节,我得到了属于我自己的 ZX81 计算机,此后不久,ZX81 的硬件跟不上硬件发展了,我于1993年晚些时候转向了 ZX Spectrum ,自此之后,我也使用 Z80 汇编语言编写了一些程序。
|
||||
|
||||
多年以后,我偶然得到一款早期型的卡西欧(LCTT 译注:CASIO)掌上型计算器,它可以执行 BASIC 程序。这是 PB 系列的一款设备,有可能是 PB-200,不过我已经记不清具体的型号了。16岁时在英国,我设法说服了我的老师允许我在我的[数学普通等级考试中][T4]使用它。我也关注过其他的编程语言,不过直到我在大学开始学习 Ada 前,我都没有真正学过其他的编程语言。 —[Steven Ellis][14]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我的第一门编程语言是 BASIC,那是在80年代早期的事了。
|
||||
|
||||
我的一个亲戚给他们的孩子买了一台 C64 计算机用来让他们学习计算机。它们只用这台计算机玩游戏,我也被邀请了。不过他们还有一本关于 BASIC 语言的书,我非常好奇并做了尝试。我写了一些简短的代码,我甚至都不知道怎么保存它,不过当我看到计算机如我告诉它的那样工作的时候那仍然令人十分兴奋。这也说明我没有花钱来学习 BASIC 编程,这并不是我的选择,它是我当时能接触到的语言。几年后当我得到我的第一台计算机,一台 XT 兼容机后,我首先用 GW-BASIC 语言写了一些代码,GW-BASIC 是 BASIC 语言在 DOS 系统下的一种方言。
|
||||
|
||||
*接下来发生了什么?
|
||||
*我第一次认真选择的编程语言是 Pascal。我问了一圈,又查了一些书籍,它看上去是在功能与难度之间的一个挺好的妥协。一开始,我用的是 Turbo Pascal,我用它编写了各种简单的游戏与图形。我热爱 Pascal,因此在上大学的时候,我甚至还在用它(FreePascal 与 Lazarus)来进完成测量自动化与地下水污染分布的建模。—[Peter Czanik][15]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*卡西欧 fx-7200G 的编程语言的[一个变体][16],我想它可能没有自己的名字。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没有。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*也没有
|
||||
|
||||
*为什么这么说?我得到了一台可编程计算器作为我13岁的生日礼物(包装盒上说它是“计算机”)。
|
||||
|
||||
*接下来发生了什么?
|
||||
*一年后,上高一的时候,我在甚至没有一本教科书的情况下学习了 Pascal 语言——我们的老师推荐的主要的学习 Pascal 的教材还是大学程度的,他认为这些教材对我们而言还是太难了——因此我们用来理论教学与练习的文本实际上都是使用 BASIC 语言的,因此我也学了一些 BASIC 语言(虽然是无意的,但是从老师的角度来看的确是这样)。
|
||||
|
||||
|
||||
我认为我是一名后来者——一些我的同班同学在家里拥有一台内置了 BASIC 的计算机(commodore 64, Spectrum Sinclair, Amstrad 之一)。上高中之前我已经对 BASIC 有所了解,高一的一年里,在我们这些对 BASIC 有点了解又无法欣赏 Pascal 的优点的学生之间存在一些紧张状态。
|
||||
|
||||
后来,我上大学了(方向是数学与科学),我们这些学生可以使用 DOS PC 或者一些苹果公司的 Macintosh 或者是主要连接到 SunOS 4 共享机的一些终端机(如果你幸运的话,text ones 与 X Terminals 总有一个可以用)。我大二的时候(1993年),某位朋友向我介绍了 Linux,它可以在家用机器上运行。在得知 Linux 之前我已经给自己买了一台新电脑(一台 AMD 386SX 兼容机,直到8年后它退役了,我才意识到它是 AMD 的而不是我之前一直以为的 Intel 386 机器)。得知我的 8088 电脑不适合运行更现代的系统之后,我尝试使用 Linux 系统,在仅有 2MB 内存的情况下安装好 Linux 花了我几个月的时间。此后不久,我升级到了 4MB 内存,我也几乎不再进入 DOS 系统(虽然我仍然将它作为我的第二启动项几年了)。我至今仍然记得当我能够完全在家里运行一个类 UNIX 系统时我的惊讶与激动之情,即便只是基于 X windows (在升级到 4MB 内存以后)。
|
||||
|
||||
回到编程语言,在我大学期间,我们学习/使用了 Pascal 语言(一开始的引入课程),C语言(系统编程引论课程)以及一些课程专用的语言,Eiffel 语言(在面向对象课程中学习的),Matlab 语言(为了我的一项研究),等等。
|
||||
|
||||
我的第一份实际工作是参与一个基于 Unix 的项目(我们主要使用运行 Ultrix 系统的 DECstation 工作站),我主要是使用 Lisp 语言(Lucid Common Lisp)和 C 语言。我就是在这时学习的 Lisp 语言,虽然我后来没有再使用过它,而且这段经历也给我留下了很多美好回忆。作为一个个人项目,我设法使该项目运行在 Linux 系统的个人电脑上,通过使用一个用于 SCO Unix 的 LCL 副本。我极力使之能在 Linux 下工作,主要是通过 `ibcs2` 组件以及一个用跨平太编译器工具链重新编译的 GNU `libc` 库实现的(在 Linux 上使用 `GCC/as/ld` 生成用于 SCO 的 COFF 库)。我非常自豪地向我的领导演示这一应用,这通常是需要一套运行在5000美元的电脑上的大约要花30000美元的工作站上的。然而它从来没有被投入到生产环境中过。—[Yedidyah Bar David][17]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*TI-BASIC
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没有,不过我那时才10岁。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*没呢。
|
||||
|
||||
*为什么这么说?
|
||||
*这是 TI-99/4A 计算机上仅有的编程语言了!嗯,这台计算机上也有“Extended Basic”语言,不过这只是 BASIC 的一个拓展指令集。在16Kb内存中你绝对可以编写相当可以的游戏。
|
||||
|
||||
*接下来发生了什么?
|
||||
*下一步就是输入通过打印杂志传递的程序并把他们记录到录音带上。不过我与我的兄弟在这一步上做得更加深入——我们通过将结果的声音通过无线电实时广播让对方记录下来!基于清晰的接收和足够的错误纠正,在1985年就可以通过无线方式分发和下载程序。—[Thierry Carrez][18]
|
||||
|
||||
* * *
|
||||
|
||||
你的第一门编程语言是什么?
|
||||
*GW-BASIC
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*不是
|
||||
|
||||
*为什么这么说?
|
||||
*它是针对初学者的标准教学内容。
|
||||
|
||||
*接下来发生了什么?
|
||||
*我开始在一家公司里做计算机硬件专家。—[Hüseyin GÜÇ][19]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*BASIC,在 VIC-20 机器上。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*我只限于选择了那台电脑。
|
||||
|
||||
*为什么这么说?
|
||||
*我发现 VIC 机器至少是跟我在学校里见到的 PET 机器最兼容的机器了。而且它有一个好看的键盘。
|
||||
|
||||
*接下来发生了什么?
|
||||
*接下来就是编程时间了因为这台机器也没有其他事情可以做了——我学到了很多。—[Bob Murphy][20]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*如果我没有记错的话,那是2004年还是2005年。我还在上学,可能是5年级,我接触到了 BASIC。此前,我还学了有关 “Window Logo” 的一些知识。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*我父母花钱供我上学了。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*完全不是。
|
||||
|
||||
*为什么这么说?
|
||||
*这是由我学校学习的课程决定的。
|
||||
|
||||
*接下来发生了什么?
|
||||
*它彻底燃起了我对编程的兴趣,我继续在课外学习班中学习了 C/C++ 语言。我的父母非常鼓励我并且一定程度上尽力给我提供补习费。我经常是整个计算机补习机构里最后仅剩的那个孩子。 —[Kedar Vijay Kulkarni][21]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*Fortran,因为那是很久之前的事了。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*不是的,我花钱上计算机课程时学习的它。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*不,那是仅有的选择。我很幸运我用的是终端而不是打孔卡片,我可怜的丈夫在学习 Fortran 程序的时候用的还是打孔卡片。
|
||||
|
||||
*为什么这么说?
|
||||
*我是人文专业毕业(英语与人类学双专业),我临毕业的时候需要实实在在找一份工作。我发现学一门计算机课会使之成为可能。事实证明,就市场需要的技能而言,这一门编程课程是我学到的最有价值的课程。它给我在后续的学习 Python,理解 Git 以及为 Red Hat 撰写和编辑文档时提供了一个很好的基础。
|
||||
|
||||
*接下来发生了什么?
|
||||
*我回家了,在一台我父母购买的 TI-99 计算机上自学了 BASIC 语言(我不确定他们为什么买了它,或许是为了我的弟弟)。早期的 Fortran 基础让我在 Windows 出现之前的使用早期个人电脑能够更加容易,因为我能够理解 DOS。这显然是一个简陋的开始。—[Ingrid Towey][22]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*2001年,我通过阅读艾迪生韦斯利出版社的 _Goto Java_ 这本书学习了 Java SE 1.2
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没有,我当时还在学校里。
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*是的
|
||||
|
||||
*为什么这么说?
|
||||
*我想要使用 Java Applets 制作交互式网页。
|
||||
|
||||
*接下来发生了什么?
|
||||
*我上大学了并且接触到了自由和开源软件(FOSS)并且学习了 ANSI C 语言。—[Joël Krähemann][23]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我准备就此写一篇文章,不过我已经写了这篇了:[参与开源软件并不必须要计算机科学学位(2020年8月6日)][24]。
|
||||
|
||||
这篇文章中的重点如下:
|
||||
|
||||
我的父母买了一台 Apple II+ 的克隆版,叫做 Franklin ACE 1000。我和我的兄弟自学了如何使用 AppleSoft BASIC 编程。我的父母给我们买了书,我们如饥似渴地吸收了这些书籍。我通过读书上的内容学会了 BASIC 语言的边边角角,然后写了实操的程序。我最喜欢的娱乐就是编写游戏和仿真程序。
|
||||
|
||||
我停留在 BASIC 语言上很长时间。但是当我上了大学以后,我开始学习其他的编程语言。我是物理学系的一名学生,作为学习数值分析的先导条件,我们必须学习 Fortran 语言。因为已经学过了 BASIC 语言,我觉得 Fortran 相当容易学习。Fortran 与 BASIC 是非常相似的,虽然我使用 Fortran 的经历相当有限。
|
||||
|
||||
我的兄弟在另一所大学里主修计算机科学,他给我介绍了 C 语言,我立马就爱上了用 C 语言编程!它是一种简明直接的语言,给了我相当大的灵活性,让我能够编写有用的程序。但是我的学位计划里没有足够的空间让我选择一门不适用于我所选择的物理学专业的课程。为此,我转而通过读书结合图书馆的参考指南来自学 C 语言。每当我希望学习新的主题的时候,我就在参考指南中寻找相应的内容然后实践编写一个相应的程序来锻炼我的新知识。
|
||||
|
||||
随着时间的推移,我利用我所学的内容来学习其它的编程语言。我编写了大量 Unix Korn 命令行脚本, Linux Bash 脚本和 AWK 脚本。我还用 Perl 写些小实用工具, 后来也用 Perl CGI 以及 PHP 做网站开发。我学习了够用的 LISP 语言来调整我的 GNU Emacs 副本,也学习了够用的 Scheme 来参与一个使用 GNU Guile 的项目。—[Jim Hall][25]
|
||||
|
||||
* * *
|
||||
|
||||
*你的第一门编程语言是什么?
|
||||
*我的第一门编程是 BASIC,准确地说是 Atari BASIC 语言。
|
||||
|
||||
20世纪80年代,我家买了一台 Atari 400 家用计算机。我用它来玩游戏,不过它也自带了一盘 BASIC 语言的卡带。它还包括一个盒式录音机(Atari 1010)。那些年,程序可以存储在标准的录音带上。Atari 400 没有内部存储空间,因此我也学会了如何将我的程序保存到录音带上以及随后如何重新加载它们。除了常见的“Hello World”的程序,我还写了一些允许使用操作杆来控制声音与图形的程序。我现在还记得用来设置和读取某些设置属性的 PEEK 和 POKE 命令,比如一项颜色设置或者一项声音设置。
|
||||
|
||||
*你花钱学习的吗?
|
||||
*没有
|
||||
|
||||
*你是自己选择它的吗?
|
||||
*是的,它是 Atari 中内置的编程语言,因此我确定尝试一下——我非常喜欢用它编程。
|
||||
|
||||
*接下来发生了什么?
|
||||
*一段时间之后,我可能已经失去了对 Atari 以及电子游戏的兴趣。直到90年代中期,当我参加计算机课程以辅修计算机科学时,我才重新对计算机和编程重新感兴趣。这些课程教会了我 C 语言、汇编语言以及很多其他的通用计算机与网络技术。作为我的硕士学位的一部分,我后来又学习了 Java。在我的职业生涯中我只进行了数量不多的正式编程工作,主要是在21世纪头十年中期时在 ColdFusion 环境下使用 Java 语言。从编程方面来说,命令行脚本是我的主要领域,主要是基于 BASH 与 Windows,不过只要需要的时候我也会进行特定目标的编程。我使用过作业控制语言(Job Control Language, JCL)用来在大型机系统之间进行自动化文件传输。我也使用过 Python 用来将 REST API 的查询结果返回给企业监控面板。我仍然认为我早期的 BASIC 编程经历是值得的,因为我从软件与编程中得到了尊重。—[Alan Formy-Duval][26]
|
||||
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
via: https://opensource.com/article/21/8/first-programming-language
|
||||
|
||||
作者:[Jen Wike Huger][a]
|
||||
选题:[lujun9972][b]
|
||||
译者:[CanYellow](https://github.com/CanYellow)
|
||||
校对:[校对者ID](https://github.com/校对者ID)
|
||||
|
||||
本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出
|
||||
|
||||
[a]: https://opensource.com/users/jen-wike
|
||||
[b]: https://github.com/lujun9972
|
||||
[1]: https://opensource.com/sites/default/files/styles/image-full-size/public/lead-images/computer_space_graphic_cosmic.png?itok=wu493YbB (Computer laptop in space)
|
||||
[2]: https://opensource.com/users/fungi
|
||||
[3]: https://opensource.com/users/clcollins
|
||||
[4]: https://opensource.com/users/heidi-jc-ellis
|
||||
[5]: https://opensource.com/users/matthew-helmke
|
||||
[6]: https://opensource.com/users/ahuka
|
||||
[7]: https://opensource.com/users/jnyjny
|
||||
[8]: https://opensource.com/users/greg-p
|
||||
[9]: https://opensource.com/users/clhermansen
|
||||
[10]: https://opensource.com/users/kjcole
|
||||
[11]: https://opensource.com/users/jtpennington
|
||||
[12]: https://opensource.com/users/laszewski
|
||||
[13]: https://opensource.com/users/don-watkins
|
||||
[14]: https://opensource.com/users/steven-ellis
|
||||
[15]: https://opensource.com/users/czanik
|
||||
[16]: https://en.wikipedia.org/wiki/Casio_fx-7000G
|
||||
[17]: https://opensource.com/users/didib
|
||||
[18]: https://opensource.com/users/thierry-carrez
|
||||
[19]: https://opensource.com/users/hguc
|
||||
[20]: https://opensource.com/users/murph
|
||||
[21]: https://opensource.com/users/kkulkarn
|
||||
[22]: https://opensource.com/users/i-towey
|
||||
[23]: https://opensource.com/users/joel2001k
|
||||
[24]: https://opensource.com/article/20/8/learn-open-source
|
||||
[25]: https://opensource.com/users/jim-hall
|
||||
[26]: https://opensource.com/users/alanfdoss
|
||||
|
||||
[T1]: https://link.springer.com/chapter/10.1007/978-1-349-08004-5_6
|
||||
[T2]: http://nvidia.zhidx.com/product-11.html
|
||||
[T3]: https://colab.research.google.com/
|
||||
[T4]: https://en.wikipedia.org/wiki/GCE_Ordinary_Level_(United_Kingdom)
|
Loading…
Reference in New Issue
Block a user