4 ms·
Self-taught person here. This is surely a minefield of downvotes, but I've noticed several differences in CS students: 1. While CS students have a broader arra
by briholt 12y ago
Self-taught person here. This is surely a minefield of downvotes, but I've noticed several differences in CS students:
1. While CS students have a broader array of programming knowledge, they have narrower perspective about it. By this I mean they have difficulty distinguishing their own programming experience and knowledge from that of the world as a whole. They assume everyone learned Java in CSE101 so they can't fathom how some one could program Ruby without being able to explain it using Java-esque CSE101 terminology.
2. CS students participate in open source more. Self-taughters usually do so in order to complete a direct objective (i.e. make a site, sell some widgets), they weren't exposed to the culture or peer recognition around programming that comes from years of academia. CS students are often encouraged or required to participate in open source projects. This sometimes leads to the false insular belief among the educated that all "good" programs work on open source projects. This pops up on HN every now and then.
3. CS students like libraries more. My guesses for why this is might be: (1) the academic exercise of writing your own libraries; (2) libraries are a generally more academic approach to programming where you write code "by the book" and work on many what-if possibilities; (3) it's 11:00pm and you need to submit your code in an hour - you don't care about maintainability - so shove a library in there to eek it out as fast as you can. Self-taughters don't have such academic exercises or deadlines in their learning; and they'll usually be maintaining their code for a long time, which discourages libraries in my experience.
These are my observations from the coders I've worked with. Of course, there are exceptions, I know there are many self-taughters who use libraries and work on open source, but just not as many CS students.
- deleted 12y ago[deleted]
- zyxley 12y agoMost universities don't have a software engineering program, just a CS program. Typically it's one that's heavier on the software aspects than the mathematical part of things.
- kbar13 12y agoi don't have a cs degree and I consider both 2 and 3 to be a core beliefs
- woah 12y agoSame here.
- kragniz 12y ago> CS students participate in open source more. I'd disagree on this one. From my admittedly anecdotal experience, all the people I know who are heavily self-taught (myself included) have participated more in open source. Most of these people are driven by a passion for software, rather than a need to sell something.
- trigoman 12y agoHow does using a libraries make your code less maintainable?
- eeZi 12y agoIt doesn't.
- adrusi 12y agoIf thought about properly, it doesn't. If you pull in a dependency on Xlib because you wanted a matrix math function from a graphics library, then it does. If you're building on a platform that emphasizes many small libraries, and you pull in a few well-reputed ones, only to find that your dependency graph now includes 15 small buggy libraries hosted on github and abandoned by their developers, then it does. If you introduce a dependency on a Windows-only library in your game's physics engine, and then want to port the game to Linux, then it does. It's possible to be sloppy with using libraries, but I don't think academically-grounded programmers are any prone to being sloppy.
- trigoman 12y agoOk so basically, being irresponsible about which libraries you depend on. Got it, thanks!
- topkai22 12y agoIf you are writing a enterprise crud or workflow app that likely wont ever be looked at again till a systems upgrade comes in 3 years, having a sprawl of abandoned or semi-abandoned libraries can be a nightmare to update. Enterprise it management includes trying to coalesce around a well known corporate standards for that reason. It's much easier to maintain upgrade a portfolio of projects if they are all using the same libraries than if each project is using a different 3rd party library. Sometimes these standards mean sucking it up and using core language feature or existing library features to bridge the gap to where you want to be.
- kaylarose 12y agoI actually find both 2 & 3 to be more prevalent in self-taught programmers (especially those who know enough "officially" taught people to have an inferiority complex. (i.e. why re-invent the wheel when (surely) someone else has already re-invented it better). Also, I find that most CS students miss the "forest for the trees", and focus on the technical - rather than the immediate reality (Big-O < shipping features) at a small company. Overall, none of those qualities are bad, but both can contribute to the success or failure, of a company. Morale: caveat emptor. Culture & Diversity is important.