• Breaking News

    Wednesday, May 13, 2020

    How I learned programming in the early 1970’s learn programming

    How I learned programming in the early 1970’s learn programming


    How I learned programming in the early 1970’s

    Posted: 12 May 2020 11:06 PM PDT

    TL,DR: I recently retired after 40+ years in the software development industry. I thought you guys and gals might like to hear how things were "back then". I apologize if this is too far off topic for this subreddit. If it is, point me in the right direction, and I'll quietly go away.

    Sorry for the wall of text. I put the TL,DR up front to save you from mental pain and suffering.

    Let me set the stage. It's my sophomore year of high school. I grew up and lived in a large metropolitan city in the western US. More specifically in an upper middle class neighborhood in an upscale school district. Computers were things of science fiction. They were large, room sized monstrosities requiring special accommodations, and cadres of specially trained operators to keep them running. They were made by the likes of IBM, Univac, and others. This was years before desktop microcomputers would become available. IBM PC's, Microsoft, Apple, etc didn't exist. Unix was still a closely held trade secret of Bell Labs, a subsidiary of the Bell Telephone system. Linux was decades away.

    My school district owned an IBM 370 mainframe for doing scheduling, grading, payroll and other administrative tasks. They had just purchased for students and teaching purposes a new "mini-computer". It was a Hewlett-Packard 2000C time-shared computer. It was capable of supporting 32 users dialed in over telephone lines via 110-300 baud modems. The operating system was a simple BASIC interpreter. The district installed one or more ASR 33 teletypes in each high school. My school had a small room off of the math department where 3 of these were housed.

    My high school offered a one quarter class in programming in HP BASIC, a derivative of Dartmouth BASIC. The class was taught by the math department and focused on using the computer to solve math problems. Typical programs were less than 100 lines in length. On a whim, I signed up to take the class. The class was interesting, but what I really enjoyed was the open access to the computer room after hours. I spent many hours tinkering and playing, writing programs to do whatever struck my fancy. By the end of the one quarter programming class, I had far surpassed the teacher's abilities, and he recruited me to teach the class the next quarter as "independent study". This was when I wrote my first program on contract. It was a simple data analysis program to analyze and produce statistics pulled from surveys done by the local chamber of commerce.

    By the next year, the district had made arrangements to allow classes in conjunction with the local community college. This was an early version of "concurrent enrollment". I took a class in computer operations taught using the IBM 370 owned by the school district because the college did not yet own a computer. Here I wrote a few simple programs in COBOL, but mostly learned to hang mag tapes, mount disk packs, change the paper and the ribbon in the line printer, and to wire "programming" cards for the various peripherals such as the card reader, the card sorter, and the card punch.

    Fast forward a few years. I had graduated from high school, and spent a couple of years travelling out of the US in a third world country. When I came back, things had changed in the computer world. Computer stores were popping up all over the place selling desktop microcomputers. These were the likes of the Altair 8800, IMSAI 8080, Northstar Horizon, and Radio Shack TRS-80. I enrolled in an electrical engineering / business / computer science program at the university and was learning FORTRAN 4, COBOL, and PDP-8 assembly. None of these would be important to my future career. Stay tuned…

    It was during this time that I walked into a local computer shop, and sat down at one of their computers to entertain myself. Within a few minutes I had written a short program to scroll a sine wave up the CRT screen. It looked something like this

    10 LET X=0 20 PRINT TAB(SIN(x)*40+40),"*" 30 LET X=X+.3 40 GOTO 20 50 END 

    The proprietor walked in at this point, saw what I had done, and hired me on the spot. You see, while microcomputers brought computing within the price range of the masses, almost no software existed to make them useful. Likewise, programmers were extremely scarce. Over the next couple years, I wrote for them a complete accounting package for small business, including accounts receivable, accounts payable, payroll, inventory, and general ledger modules. This was quite an accomplishment on a system sporting 32K bytes of RAM and 360K bytes of floppy disk space.

    Unfortunately, this job didn't pay terribly well. I earned less than $3 per hour (about $10 in today's dollars). So I started a second job doing data entry on the graveyard shift at a local food processing plant. I was pretty good and soon was doing all the paperwork in about 2 hours.This gave me a lot of spare time, so I began writing programs to automate various office tasks.

    About this time, the C programming language was released to the public from Bell Labs. I picked up the first edition of the Kernighan and Richie "The C Programming Language"" book. It still has a place of honor on my bookshelf in my office. Soon, BYTE magazine published the entire source code for a Small-C compiler, written in C. I typed the whole thing in, and using one of the university computers got it to compile and run, bootstrapping my way to having it run under the Digital Research CP/M operating system on an Intel 8080 based microcomputer.

    By the mid 1980's, microcomputers were definitely a thing. IBM had produced the PC, Bill Gates and crew had become successful with Microsoft MS-BASIC interpreter and MS-DOS, Compaq had successfully defended the first IBM PC clone, and we were off to the races.

    Over the following decades, I worked for a variety of companies. Doing software for accounting, banking, computer based training, flight simulation, telephone infrastructure, classified stuff I still can't talk about, and most recently, cryptocurrency.

    I've learned and used a variety of languages and scripting tools including BASIC, FORTRAN 4, COBOL, Assembly, C, C++, dBase II, dBase III, Pascal, Perl, Bash, Go, Python, HTML, Scala, and probably a few others I've forgotten about. My specialty, and what I consider my best language, is plain old C, especially embedded application code under Linux.

    As I said above, I've recently called it quits and retired. I miss the camaraderie of coworkers, the thrill of solving difficult problems, and the satisfaction of seeing your code used far and wide around the world. I do not miss impossible schedules, corporate bureaucracy, shrinking benefit packages, and unknowing and uncaring employers.

    Don't get me wrong, I will keep coding. Probably not huge systems. My latest are little embedded projects for Arduino and Raspberry Pi controllers.

    It's been a wild ride, and I'd do it again. It's kept food on the table, a roof over my head, enabled me to travel the world, and be a part of something bigger than me. What more could a guy ask?

    Edit: Thanks for all the kind comments! It makes me feel warm and fuzzy about the next generation of coders. I'll come back and read more comments in the morning, my wife just poked her head into my office and gave me that look that says "Get your butt off of Reddit, and into bed or I'm locking the door and you're sleeping on the couch." G'nite ladies and gents!

    submitted by /u/ElGringoMojado
    [link] [comments]

    Learn the Undergraduate CS Core Online for Free

    Posted: 12 May 2020 07:38 AM PDT

    I noticed that almost every university has the same set of core Computer Science courses, and I wanted to put together a list of resources for those classes that are most commonly required.

    CS Core

    Introduction to Computer Science I

    Computer Science II (a second programming language and OOP)

    Data Structures and Algorithms

    Discrete Mathematics

    Extended CS Core

    (These courses are part of the CS Core for many universities, but not as universal as the ones above)

    Computer Architecture

    Operating Systems

    Typical Math Requirements

    Calculus

    Multivariable Calculus

    Linear Algebra

    Differential Equations

    The main coursers (Intro to CS, Object Oriented Programming, Data Structures/Algorithms, and Discrete Math) are requirements almost everywhere I've reviewed the CS curriculum, from top ten universities to my community college. I've listed the best resources I could find to learn these subjects, but it may not get you credit or the job opportunities you want. They're also free to audit the last time I visited them (although coursera has been changing their billing, I think you can still find a way to audit courses). I added an extra section for Architecture and Operating Systems because these seem to be very common, but not to the extent as the first four. Lastly, I threw in some math resources for the subjects that are typically required/recommended. If this is useful, maybe it can be expanded to have some justification about why these courses are so important.

    Also, OSSU Computer Science exists and is far more comprehensive. I wanted this to have a much smaller scope and just point to resources for the "essential" courses.

    If you have any recommendations or alternatives, put them in the comments.

    submitted by /u/hobbitmagic
    [link] [comments]

    Can teach programming for free

    Posted: 12 May 2020 01:43 AM PDT

    Hi. I'm a middle-level full-stack web developer with around 1.5 years of teaching experience. I can teach you HTML, CSS, JavaScript, React Native, Redux, Python, PHP, Git for free online. Also I can help you with Django, Laravel, Vue.js, Vuex, MySQL, MongoDB.

    The problem is, my English is not so good. It would be nice if you could help me with American English speaking and accent.

    Edit: basically, I just need somebody to chat with me in English and correct me now and then. My languages are Uzbek and Russian.

    I'm available at 7:30 pm - 9 pm and 7 am - 8:30 am New York time.

    submitted by /u/uu38
    [link] [comments]

    Free coursera courses

    Posted: 12 May 2020 12:43 PM PDT

    I can teach many programming languages for free!

    Posted: 12 May 2020 02:20 PM PDT

    Hello everyone,

    A group of fellow CS students and I have created a platform on which we can teach people the fundamentals of a variety of programming languages for free (Python, C++, GO, HTML/CSS, etc.). We have free, live programming classes through Discord at many different times for anyone around the world to join and learn, regardless of age. If you are interested in learning, here's our discord: https://discord.gg/K3ysFch and here's our website: http://codetheuniverse.org/. If you might like to teach a class on a programming language/topic we do not cover yet, please DM me!

    submitted by /u/rocksbox178
    [link] [comments]

    Is it worth learning HTML when you can make your own website now with square space?

    Posted: 12 May 2020 09:48 PM PDT

    I'm new to programming and just wondering if it would be worth learning something else seeing as webpages can be made easily on websites such as squarespace now

    submitted by /u/ng4588
    [link] [comments]

    What is stopping a database admin from just looking at private user data?

    Posted: 12 May 2020 09:43 PM PDT

    I assume big companies with lots of eyes on them and many people interacting with the databases such as Google or Microsoft would have systems to restrict and log access, but I could see most small web apps made by teams of 10-50 devs would have not much stopping the database admin from pulling a bunch of user data and just browsing through it while debugging a problem or even just for fun. Have you ever done this, or seen a coworker do this?

    submitted by /u/UglyChihuahua
    [link] [comments]

    Desk Setup

    Posted: 12 May 2020 11:39 PM PDT

    Starting CS in college soon and I want to excel. I only have 2 old laptops I'm self-studying on for the time being: MacOS - MBP early 2015 with 16gb RAM, for Windows - Asus UX303UA.

    Do I need to have the entire setup of dual monitors/ultrawide screens to be successful? Do I need high refresh rates for larger programs?

    Still deciding between computer science/computer engineer, if that helps.

    Any insight would be appreciated.

    submitted by /u/viahn
    [link] [comments]

    Anyone successfully learn to code after several failed attempts?

    Posted: 12 May 2020 04:34 PM PDT

    What did you do differently to the previous attempts? Are you glad you stuck with it and did it lead to a good outcome?

    submitted by /u/alex123711
    [link] [comments]

    Learning Backend development to make a social media?

    Posted: 13 May 2020 12:40 AM PDT

    Doesn't anyone have any resource to get into backend development? I have never work with backend but I know how rest API works. Additionally, I was interested with working with ASP.NET and the microservices system design. My goal is essentially making a full stack twitter clone.

    submitted by /u/w4ssup
    [link] [comments]

    What language should I choose for sound production programs?

    Posted: 13 May 2020 12:38 AM PDT

    Hi, I'm a beginner front-end programmer, but as my big hobby is music and sound, I wonder what language should I learn and use if I want to program DAW (Digital audio workstation) or VST or other sound related things?

    I red that python for example is not suitable for such a thing, because it's an interpreted language.

    Note: English is not my native language.

    submitted by /u/volkatr
    [link] [comments]

    Why do hashtables contracts not error on deleting a nonexistent key?

    Posted: 12 May 2020 11:06 PM PDT

    I noticed that most dictionaries design their contracts such that the delete method doesn't ever error. Why would this be?

    In contrast, the get method typically WILL error.

    What's the intuition here?

    submitted by /u/macBoolin
    [link] [comments]

    c++ Timer not counting down correctly.

    Posted: 12 May 2020 10:43 PM PDT

    Hello, So ive been making a timer and for the most part it works, it asks what you want it to be called, if you want in in minutes, hours, or seconds ect, but the problem lies with the counting down part.

    Lets say you want a timer for 5 seconds, instead of counting down 5 seconds and then printing the timer name it waits 5 seconds, then it goes to 4, then it waits 4 seconds then it goes to 3, then it waits 3 seconds and it goes to 2, and you get the point. What is causing it to do this.

    here is the code

    submitted by /u/sevenbraincells
    [link] [comments]

    Is this a good plan or not?

    Posted: 13 May 2020 01:01 AM PDT

    Hello! I am a computer engineering student and with the virus outbreak it seems I will have a lot of time on my hands for the next 6 months. I like many CS students find university education to be limited and it seems every hour of my own learning/coding is much more productive then studying for exams or just the class really as the entire semesters classes can be learned probably within a week of dedicated studying for the most part.

    So I've decided to spend these next 6 months to better myself in 2 or 3 different topics but Im not sure how productive it'll be to do all 3 compare to picking one and just going deep. At the same time I think they also go hand in hand and I find all topics interesting.

    1- Unreal Engine c++. I love design and games, C++ is also the first language I have learned and probably know the most about. I don't know if I want to create games for the rest of my life but its def. something that gets my hyped!

    2- AI. I mean regardless of how awesomely interesting the topic and functionalities of the tech are, its probably the future of everything if not already here.

    3- Web Design. I mean I just love designing things and this is already something I know (HTML CSS JS etc) on front end level but I am no means a master. The upside is I find it very easy for the most part and this option is probably the easy route and I enjoy it.

    Do you think all 3 are viable to learn together in 6 months? (6 months is just the beginning ofc. Its just the time frame I have set to reach a certain level where I wouldn't need to invest a lot of time later as school etc will be in the way). Which ones would you drop/ recommend to keep up?

    Thanks :)

    submitted by /u/StrawBro
    [link] [comments]

    What are we actually doing when setting Environment path variable?

    Posted: 12 May 2020 09:12 PM PDT

    I am learning Java, and after installing the jdk, I had to set the PATH Environment Variable. In simple words, what am I actually doing?

    submitted by /u/amanagarwalx
    [link] [comments]

    How to not get demotivated and overwhelmed by the amount of things you need to learn just to be able to apply for jobs?

    Posted: 12 May 2020 06:03 AM PDT

    Title basically sums it all... It seems you need a TON of things just to get started... really tough and somewhat unmotivating...

    I'm trying to change careers and I know basics of C# and JavaScript (also HTML, CSS), NodeJS and some CSS frameworks...

    How do you guys do it?

    submitted by /u/MarcCDB
    [link] [comments]

    What would the most important programming language be?

    Posted: 13 May 2020 12:51 AM PDT

    I have no background whatsoever in programming. I want to start with the most widely used programming language.

    submitted by /u/potatonerd1
    [link] [comments]

    Finding height of a node in a binary heap?

    Posted: 13 May 2020 12:32 AM PDT

    Hey I'm using a vector representation of a binary heap in C++ and I was wondering if I can find the height of a given node using my array implementation.

    submitted by /u/Neemers911
    [link] [comments]

    Super beginner need help BASIC

    Posted: 12 May 2020 08:34 PM PDT

    So i have this cool math book but the programming for the functions is all in BASIC. Is there any recommended IDE for programming and the visualization of the functions?

    submitted by /u/Shizzlenargyfarf
    [link] [comments]

    How to update intel

    Posted: 13 May 2020 12:17 AM PDT

    WHERE DO I START??

    Posted: 13 May 2020 12:15 AM PDT

    Hi everyone. So I want to start learning programming/code but IDK where to begin. As someone who has never learned programming before, all the types of programming languages seem really intimidating and confusing. Can I get recommendations/advice on what I should do or how should I begin?? Thank you.

    submitted by /u/BIT_02
    [link] [comments]

    Hey guys, a little off topic about mascot, brand name and the font for my logo. Can you give your feedback on that?

    Posted: 13 May 2020 12:13 AM PDT

    I registered the domain "geeknoon.com" and bought a logo and an intro here in Brazil (there are not so many good designers easy to find).

    And the result was this mascot suggested by me (penguin based on Tux and cat ears uwu) and the Baloo Thambi 2 font, who will compose the "logo"(?): https://i.imgur.com/TsXo0HH.png

    My question is: does this seem very amateur? The goal is to be a platform for courses, and possibly something like a digital agency (not the ones where they live blogging their whole lives).

    What do you think of this?

    submitted by /u/marcosr00t
    [link] [comments]

    Could ThreadPools be thought of as tools of virtualization?

    Posted: 13 May 2020 12:10 AM PDT

    I am trying to get my head around task scheduling in Java. A lot of the API's use threadpools and I wonder what exactly are threadpools?

    They sound like a container/manager for computing resources. Like, you allocate threads from your machine to the threadpool, and then it does optimization and management of threads (garbage collection?). Which sounds like virtualization since the core you provide to the threadpool is not a "real" physical core. And the threadpool can do multiple async tasks, so it seems it "splits" the thread you already gave it to multiple theads?

    Sounds like virtualization to me. And I wonder if I can call this process virtualization.

    submitted by /u/BigBootyBear
    [link] [comments]

    HELP with c++ quaternion implementation

    Posted: 13 May 2020 12:09 AM PDT

    Hi, first time poster. I'm trying to implement some quaternion math in code. The struct of the quaternion consists of a float and then a vec3. A vec3 is also a struct with three float representing a vector. This is the first time i'm doing anything like this at all.

    Here is the code (this can be pasted and ran to see the errors, the errors are there as well in text)

    https://gist.github.com/Dangeroustuber/f3aa942c46c33a5f5b9cadce23617862

    For the vec3 u in struct quat it complains about "missing type specifier, int assumed". How do i get it to understand that vec3 is type specifier?

    It also complains about "too many initalizers" for the quat a and b.

    How do i make it understand that vec3 can be a member of the struct quat? If it did understand how would i acsess quat vec3 u's element x for example.

    EDIT: Well it seems that i have now re-learned that maybe i should define vec3 before quat so quat knows it exists. Silly mistake by me. If anybody wants to look at the code and comment on it go ahead, all is appreciated. But as far as this question goes, just swapping the two structs seems to have solved all issues completely.

    submitted by /u/dangeroustuber
    [link] [comments]

    No comments:

    Post a Comment