No More Pencils, No More Books: An Academic Computer Science Adventure

Oscar Gordon

A Navy Turbine Tech who learned to spin wrenches on old cars, Oscar has since been trained as an Engineer & Software Developer & now writes tools for other engineers. When not in his shop or at work, he can be found spending time with his family, gardening, hiking, kayaking, gaming, or whatever strikes his fancy & fits in the budget.

Related Post Roulette

17 Responses

  1. Philip H says:

    What this tells me is that academic computer science is still largely ignorant or uninterested in how to create quality software. They love their algorithms and research, but beyond that…

    This is perhaps why a lot of the R1’s and wanna be R1’s have created Computer Engineering programs for people who actually develop software . . .Report

    • Oscar Gordon in reply to Philip H says:

      I think it would be software engineering programs, computer engineering usually suggests hardware (CPU, etc) design.Report

      • Philip H in reply to Oscar Gordon says:

        You’d think, but the computer engineers I am encountering are all software folks . . .Report

        • Oscar Gordon in reply to Philip H says:

          I may be behind the times. When I was in school, computer engineering was part of the electrical engineering program (i.e. the design of computer electronics, chips, etc.). Software engineering was part of CS.Report

          • My suspicion is that such has (1) become so specialized that there aren’t enough jobs to justify very many academic programs, and (2) most of the work is software, either using or developing. Heck, old as I am, when I finished my MS I got an offer from Intel to design and implement optimal layout heuristic software for them.

            I was reading about TSMC’s new 2nm node and their “gate all around” transistors. They may work with academics, but universities are not going to build and operate the $12B fab to do the experiments (the production fab is supposed to cost $34B).Report

            • Kolohe in reply to Michael Cain says:

              Looking up my alma matters “ECE”* department website. the current Computer Engineering masters programs’ research areas are:

              Configurable Computing
              Embedded and Secure Systems
              Machine Perception
              Mobile, Cloud and Pervasive Computing
              Networks and Cybersecurity
              Neuroimaging Methodology and Analysis
              Software Systems
              Systems Biology and Bioinformatics
              VLSI & Design Automation

              https://ece.vt.edu/grad/degrees.html

              So, yeah, a lot more stuff that seems ‘software’-y than ‘hardware’-y. On the other hand, when I was getting my own degree there (in that same early 90s timeframe) the ‘core’ EE classes that I took which covered Computer Engineering topics were even then a mix of ‘hardware-y and software-y’ and entirely taught within the department, none by the Computer Science guys. (unless you actually wanted to take a course in a programing language, like C, which I did for a bit but had to drop due to too much of a time sink for like a one credit elective)

              *called iirc “EE & CompE” when I was there, so I do approve the move towards brevity. (alas, of course “CE” was already taken)Report

  2. Congrats, that’s fantastic!

    This is why my son changed majors. He wasted whole year on undergrad comp sci, the professors were universally terrible in all the ways you lay out above, and he was going up against people who had already learned how to do everything in the classes somewhere else and never showed up to class except to turn in assignments. So it was this weird combination of the first half of the class covering “plug computer into wall” and then immediately switching over to extremely complex elements that he wasn’t as versed in. Very frustrating (tho he did graduate and has a decent job now, so alls well that ends well)Report

    • Oscar Gordon in reply to Kristin Devine says:

      I’ve been writing software for close to 20 years, but that’s not what it says on my sheepskin. This was just a way to get a credential. I was just hoping it was something else.Report

      • Really disturbing to think that the end of this year will mark 20 years since I retired from my professional technical career, and more then 45 from my last time in a university technology-oriented program. I’m no longer qualified to have an opinion about what/how they teach in computer science and engineering programs, I guess.Report

  3. veronica d says:

    Congrats on graduating!

    I’ve mentioned before that I’m entirely self-taught — I mean not strictly. I did take some programming classes in high school and a brief C programming class in community college. However, honestly I really taught myself. Moreover, I’m not really sure how you’d go about teaching people to program. I feel like it’s the sort of thing that if someone has the natural curiosity and the smarts, they should be able to read and figure it out.

    Algorithms are different. Those feel like math to me. And yeah, I learned that on my own, but I suspect for most people classes would be better.

    OS design, compilers, threading, parallelism (which is slightly different from threading) — yeah those should probably be taught in classes. Some people can learn that stuff on their own, but being in a room full of like-minded people all trying to learn it — that has to be nice.

    ###

    It’s too bad that you (mostly) need a degree to teach. I think I would be a good software engineering instructor. I know how to project my voice. Plus, I understand the frustration of not understanding something. For example, a lot of code documentation I encounter is hard to understand because the documentation seems to assume you already understand what it is trying to describe. When I write docs, I assume the reader is 1) smart, but 2) actually unfamiliar with this part of the code and will appreciate it if I lay out the context. I think a good instructor should do the same thing. They should be sensitive to where the class is at in their understanding and adapt. I think I’d be good at that.

    ###

    Anyway, I don’t know what your career goals are, but I’m glad you got your cert and I wish you the best.Report

    • Oscar Gordon in reply to veronica d says:

      Thank you!

      I’m mostly self taught, aside from the two classes I mentioned in the post. Everything else, I picked up on my own (thank you StackOverflow!). About the only things I struggle with is recursion & complexity analysis. Not the concept of recursion, just how to put together the algorithm. And complexity analysis is actually not bad, once I remember that it’s all Log base 2 and to stop seeing Log and thinking base 10.

      The rest of the stuff I mentioned are things I feel like a class could really dig into more, but I think most people are left to figure out for themselves, and I’ve seen what happens when that self-taught bit goes wrong and bad habits abound.

      I was talking to a former co-worker last week* and he was asking about a tool I inherited when a co-worker retired. I told him that I could use the source of that tool to teach a master class on how NOT to write software. The retired co-worker was entirely self-taught and managed to pick up every bad habit out there.

      * Now that I’m done with school, I’m working the network to secure the next job in the fall when I’m done with my sabbatical. Got an interview already scheduled for the last week of June (with a company that a few former co-workers landed at, so I have people inside who can speak well of me).Report

  4. Jaybird says:

    Wear sunscreen.

    Congrats!Report

  5. Teri Dorsett says:

    “Build your own OS” was a third year undergraduate course at my college. (worth double credit).
    (Yes, really — it was essentially “Software Developers Work In Teams” the class. Most people failed it the first time ’round, and I am firmly convinced that was by design.)
    C++ is now a graduate level class, because undergrads are competing with India, not competent programmers.Report