Computer science as a lost art (2015)
31–40 of 146 posts
Re: Computer science as a lost art (2015)
#32So, for the dogshed builders among us, what might be the recommended pathway to learn some architecture--beyond the obvious academic options? I'm sure this has been covered to death on HN already, but if anyone has a link bookmarked and feels like sharing?
I never released any of them and none are useful for anything any longer. None probably reached more than 75% completeness. But by trying to build games on them I saw with such clarity things that worked and didn't, and I got deep practicing in thinking about more 'general' forms/concepts/structures. I wrote a framework for writing 3D model loaders after, and the lessons carried over. I was utterly lost when starting the first game engine; with the model loading framework I had to think deeply, but I new where I was going.
Here's something to consider. If you try to just start writing 'a game engine,' (or whatever engine/framework) that could mean about anything (from 1 day of work, to 20 years of work). But, if you consider some concrete ideas for particular games you'd like to make, think about what they have in common, and then try writing a piece of software that takes care of the common parts, you'll have constrained the problem to something workable with definite goals, and a way of testing your success after.
This is at the heart of any sort of 'abstraction' you develop: you want to code several things which have a bunch of overlapping aspects, so you write something that captures the common parts, and then arrive at the several things you actually need by instantiating your abstraction with different parameters (I mean that in a very general sense, not with specific reference to OOP, though it provides means of instantiating abstractions with various parameters too, of course).
I'd say being able to do the above effectively is the cornerstone of being able to do architecture well. A bunch of other stuff comes after, like knowing when to not create abstractions, and all sorts of knowledge about doing things well for systems in particular domains (e.g. architecture for an interactive 3d simulation vs. web apps have very different patterns that have surfaced as effective).
Re: Computer science as a lost art (2015)
#33> He's a freshman at Kennesaw State right now, but he really struggles with the idea of taking two years of classes that he has very little interest in. If it is just the idea of having to take a load of liberal arts classes that perturbs your son and not the low level courses like chip design, logic, algorithms and data structures, calc and stats, one alternative to consider is to study internationally. English univ…
Looking back now, I actually regret only doing STEM papers. I got stuck in a bubble of dealing with the same people (or the same types of people) in all my classes, and really got no breadth to my degree.
I'm not saying that people should be forced to take arts papers for a science degree, but in retrospect I think that I should've taken some.
Re: Computer science as a lost art (2015)
#34Earlier quoted context omitted.
I'm not that sold on this. Programming in ASM isn't really "harder" than programming in Haskell, it's just slower - it requires discipline, but not the ability to grasp abstraction that some more modern languages need. I think that issues like knowing "how do compilers actually work" or "this thing is actually the halting problem, let's stop" are more relevant than how removed from latches and memory controllers one…
Assembly offers just as much capability for abstraction as any other language, and I think that it demands more "ability to grasp abstraction", because you pretty much have to build those abstractions yourself.
Re: Computer science as a lost art (2015)
#35> He's a freshman at Kennesaw State right now, but he really struggles with the idea of taking two years of classes that he has very little interest in. If it is just the idea of having to take a load of liberal arts classes that perturbs your son and not the low level courses like chip design, logic, algorithms and data structures, calc and stats, one alternative to consider is to study internationally. English univ…
I wish more freelancers took a class in business accounting so they'd have an idea of how to do it and what a good (or bad) contract looks like... or understand the value of their time. There are far too many that decide to become "freelancers" and yet have no idea on how to do the basic business items that come with being a freelancer.
I wish more programmers took a class that had a public speaking component. Reading powerpoint slides as a team presentation is boring. The work environment isn't just "I write code" but also a transferring of knowledge from one person to the rest of the team.
I wish more programmers took some classes in history, or physical sciences - things outside the major. I've had more than a water cooler conversations where a person doesn't understand how the length of the day impacts the temperature, or is surprised at the similarity of events today and those of thirty some-odd years ago. This concerns me, not for the skills of work, but rather the understanding of the world outside of the office.
To these things, English composition, human communication, contemporary economy, arts and culture, political science and history... oh, those are are excellent class titles to help fill out those I wish items.
Re: Computer science as a lost art (2015)
#36Why not just take a CS degree? Because I'm a poor fit for the education system. That's why I dropped out of high school in the first place.
Also, I feel like I've paid my dues already. I've been learning about computer software (and hardware and electronics) for 27 years. I haven't stopped at merely what I needed to know to do my job. I have done a lot of self-study. I routinely roll my own libraries and write embedded code, and I had a patch submitted to the Linux kernel a few years back. I also design analog and digital circuits on my spare time.
I feel it's not about having a degree at all, because I'm living, breathing evidence of that. I've met people with CS degrees who can barely write a line of code. Maybe they didn't go to a good college. Maybe they did, and it's possible to pass the exams by cramming (followed by forgetting).
Saying that you can't do advanced stuff without a CS degree is snobbery.
Re: Computer science as a lost art (2015)
#37As a person who never had a degree but whose knowledge goes above and beyond what 90% of the market needs and well into CS territory, this article insults me. It's also a painful reminder of similar prejudices in people who are looking to hire. I often end up doing the kind of basic development the author talks about and I'm not happy about that. Why not just take a CS degree? Because I'm a poor fit for the education…
I believe the only thing of lasting value I got from the degree was that I saw more of a 'roadmap' of CS topics that I didn't know existed before, which were a starting point for me learning more about them on my own. HN has done that more successfully than the university since though ;)
Re: Computer science as a lost art (2015)
#38I think what people writing articles like this tend to miss, is that it's much easier to be super deep in a field when the field is limited and low-entry but you're already in it. Because there's not really as much going on and there's not much else to do but learn C or some text editor on a super deep level or what not. What else are you going to do? Look at the stuff "deep" people are generally into, it mostly revolves around POSIX some way or another. And databases, but nobody wants to talk about that.
But today, there are hundreds of languages, a whole bunch of frameworks per language, various tools, constantly changing standards, etc. The available landscape is absolutely staggering. If you want to deeply focus, you need to pick what to deeply focus on, which is a rather tough choice and a questionable one, because the thing you focused on might become obsolete.
> if you want to make a tiny little difference in the industry and change the world just a little bit, then you do need that degree
And what sense does THIS make? Among the people who I know who _do_ deeply get into some specific CS topic, many are those who do not have degrees, because they're often people who are not fans of structure and ended up doing what they want, as opposed to what might be beneficial for career purposes.
This just seems to be heavily misguided elitism.
If you really want to know why the quality of software, and basically everything else, has gone down, just look at market incentives and you'll find that to be an utterly boring question.
Re: Computer science as a lost art (2015)
#39Re: Computer science as a lost art (2015)
#40I wonder if the author considers Node.js to be really interesting and exciting and never existed before. Ryan Dahl doesn't have a CS degree (but does have a mathematics degree).
Another (pretty cliché) example: Bill Gates never finished his degree and went on to create many great, exciting and interesting things.