8 ms·
I started programming when I was 10 or 11 and continued on to get a CS degree. One thing I did notice was that a lot of people in some of my classes seemed to h
by JoshGlazebrook 11y ago
I started programming when I was 10 or 11 and continued on to get a CS degree. One thing I did notice was that a lot of people in some of my classes seemed to have just woken up one day and decided they wanted to get a degree in computer science. And all throughout my years in school, those are the people who never ventured out of the curriculum (which was java based) to explore and learn other things. Which just seems to set you up for a life in boring corporate java desktop app development (unless you like that kind of development).
An example is my upper level elective class on database systems and design. For the final project of the class you were to take everything you've learned about relational databases and design your own schema, get all of the data properly normalized, and make an app that uses it. Other than that, the sky was the limit. You could use whatever programming language, framework, and database that you wanted, and the app could literally do anything. There was nothing limiting you to building a desktop Java app coupled with MySQL, yet 95%+ of the class did just that. I ventured off and used Postgres + Node.js and made a single page web app for my project, using skills I learned outside of school, on my own time, learning these things (I longed for a friend that knew what a promise was or that bluebird wasn't about a damn live animal).
Now to get to my point. I'm not going to say that self taught developers are strictly better, but I feel like they are the other 5% like myself that see what we do as more than just a class, grade, job, or paycheck. They are the ones that spend the time to learn new emerging things in the software development realm and do it on their own regard. I would much rather work with someone who is not an uncustomized, straight from the java CS degree factory college/university. Someone that ventures outside of the path they are guided on in their career and skill sets and takes the time to learn on their own, and learn the things they want to learn just because.
I'm lucky enough to have my first job be somewhere where I get to dive right into Node.js, Angular, etc. which is what I want to do at this time. Maybe the other 95% feel this way about their first jobs which probably are making internal business Java applications, but I really can't believe that.
- hajile 11y agoThat's the real reason we need to require programming courses in middle school. Lots of those people didn't really know CS was a thing when they were in their early teens. They hit college, but by then they are 6-8 years behind. They graduate and nobody wants to hire them because they have zero usable experience. We need to require one year of programming to get the talented kids started early then move all our "intro to CS" classes from the main syllabus to remedial college courses (you wouldn't call pre-algebra an "intro to physics" course). This would also help other professions. Engineering especially suffers from this problem where they take the required C or Java intro course then have matlab dumped onto them the next semester. They muddle through and graduate with little skill in programming despite the fact that their entire job will revolve around programming.
- crispyambulance 11y ago"zero usable experience" is a bit harsh and doesn't reflect reality. There are internship programs where students have a chance to gain work experience as well as work-study. And anyway, programming is not rocket science and even rocket scientists have "zero usable experience" in rocket science when they land their first jobs. Fresh-out-of-college hires should be placed in junior roles and mentored systematically by experts rather than handed over to project-management professionals who will thrust deliverables upon them. As for "one year of programming" [before college] what do you mean? There are already AP computer science courses for students in high school. Most high schools have enough trouble getting students ready for college, no need to add comp-sci when the basics are on such poor foundations. Much more effective to provide a solid grounding in mathematics, writing, and science, history, and literature in high school.
- hajile 11y agoI worked in Huntsville, AL once upon a time (for those who don't know, Redstone Arsenal and the Huntsville research park do a huge percent of the world's so-called "rocket science" and the city has the highest percentage of STEM people of anywhere in the world). Their university takes engineering pretty seriously (and is literally squashed up against the research park). Even so, things can be difficult. If you get an internship with one of the big companies, you will very likely have a great career in Huntsville. If you don't, then you'll have a much harder time. There are only around 180K EE jobs in the US compared to a couple million CS jobs. The dropout rate for EE is huge and the pass rate for FE/PE exams is somewhat low (you have to become certified after graduating). Companies must take a risk to hire new people because the barrier of entry is so high, but even then, they are fairly picky about experience. How much more picky will they be about experience when they have more options? The argument about having trouble with current school curriculum is a red herring. Just because they are already failing and need an overhaul does not mean that the overhaul shouldn't include an introduction to coding in middle school (and for the record, they need new curriculum, better teaching methods, and most importantly, parents who actually care about their kids enough to become involved in their day-to-day education). I don't believe for a minute that everyone can code well enough to do it for a living any more than I believe everyone who takes English classes will make a living as an author. English is important for communication, math is important for calculating and thinking, and coding is important for focusing on creative logical reasoning (complementing math very nicely). Learning how to make a turtle go through an obstacle course will teach way more about logic than a thousand "word problems". Most children will take such a course and walk away disliking coding, but hopefully with a little better logical ability. The rest will discover a subject they enjoy and increase their proficiency before college.
- LanceH 11y agoI halfway joke that there is a single test whether a non programmer has any chance of becoming a programmer. Do they right click? I guess there are some analogs for different environments. Command line, do they know about man pages. General problems, do they google it first or ask for support. etc...
- jacalata 11y agoI can't decide if this is a deliberate or accidental Mac joke.
- theobon 11y agoThat isn't unique to Computer Science or Programming. I've worked with engineers, accountants, project managers, and many trades people that never touch their area of expertise outside of the classroom or the office. No venturing outside the curriculum or the self improvement on personal time. For most of them their job is just a job and that is enough for them. I think what is amazing about programming is that so many people are able to get jobs without degrees. There is a general consensus that self taught developers can be as good or better than formally taught ones. I haven't seen this in other fields until you get to senior leadership. Sure, areas like law and accounting require a formalized foundation that are hard to get outside of degrees but trades is an area with a lot of room for self-development yet there is little respect for those without certificates. Sure you can make the argument of insurance needs but that just raises the question of why contracted developers don't need to be bonded.
- emidln 11y agoProgramming has a very low barrier to entry in the United States. You need a computer, not a particularly recent one, and time. I'm told that proficiency with English is also helpful (I speak English natively, so I can't comment on how helpful). Internet access can be had for free at libraries/schools to download tutorials and software. I know several people who learned to program on scavenged 386s and 486s in the late 90s and early 2000s. These could be had for free from some places (they were being thrown away) or cheaply from a garage sale. You could get a copy of Linux to run on a 386/486 from a local users group or by downloading it slowly and putting it onto floppies at the library (assuming your begged/borrowed/scavenged machine didn't have a cd-rom). A copy of Red Hat Linux, SuSE, Slackware, Debian, FreeBSD, or Mandrake had everything necessary to teach you Python, Perl, Bash, Makefile, Emacs Lisp, or Awk in 2000 (tutorials, compilers/interpreters, intermediate documentation). If you could get net access, a whole other world was opened up. This was my path, but I've met many others who progressed similarly. Scavenged hardware and addiction to the power instead of sports, dating, etc can pull you out of the trailer parks, high rises, or hoods. (Not that you couldn't do multiple things, but if you're poor in the states, you probably had to work from the time you were legally able and combined with school leaves little time left for multiple hobbies.) Other trades don't have such a low barrier, which practically means they are limited to those who can progress through a college path.
- camelNotation 11y agoWhen I went to college the first time around, I really didn't have a desire to be there. If I dropped out, though, everyone would label me a bum since I also didn't have a desire to do anything else. So I got an easy degree in marketing and ended up working in retail. When I finally decided that I wanted to do something else, I went back to school for computer science. I'd never developed anything before. I didn't even know what programming was. I just knew that if I got the degree and made the right grades, I'd get a job paying 3-4 times what I was making in retail. That's exactly what happened and I do precisely what you describe: build boring internal Java apps for a big company. However, I never really got involved with this stuff because I loved it. I did it for the money and because it was a far easier job than what I had. Now I'm going back to school again for a graduate degree in an entirely different field (except this time debt free). I just don't dive too deeply into stuff. It's not my thing. I'd rather switch up careers a few times in my life and do a bunch of other hobbies like woodworking, music, etc.
- TranquilMarmot 11y agoI think there's room (and need) in the world for both types of developers; ones who just stick to the curriculum and do internal Java apps for big companies and ones who venture off the beaten path. Neither one is better than the other, and each person has their own way of feeling like they're learning and growing and leading a fulfilling life. If it's woodworking or music that make you happy, great! If it's programming at work and then going home and programming even more that make you happy... also great!
- camelNotation 11y agoI agree 100%.
- andersen1488 11y agoI think it's awesome you had the courage to admit that here. There's nothing wrong with just working a job from 9-5 to fund your passions. Programmers tend to take offense at it though, for some reason.
- J-dawg 11y agoI didn't study computer science, but I was a lot like this at university. It wasn't out of laziness or lack of imagination (because I worked pretty hard), but simply naivety and blind faith in the university. I'd worked hard to get into a reputable university, and simply assumed that they would be teaching me all the stuff I needed to know. Anything that the wise professors (experts in their field!) chose to leave off the syllabus must be of lesser value, right? Looking back now as the cynic I have become, this seems laughably, pathetically naive, and completely false. 18 year old me was pretty stupid. If I ever get the chance to give advice to a young person I will be sure to impress on them that it's the stuff you do outside the course that really matters. The qualification just gives you credibility and gets your CV past HR. That cool side project you did is what you'll talk about in the interview. I don't know whether they'll listen, but I'll tell them anyway. Some people (like you) seem to know this instinctively. I wish someone had told me!
- notlisted 11y agoToo busy to read all comments, apologies if it's been stated elsewhere, but a related remark: Whenever I interview a programmer, I ask them about their pet project at home. I have yet to meet a good programmer that doesn't have at least one pet project developed outside of the office. Active development not required, just something that they put a lot of time/thought into. I ask them to tell me about it, platform used, problems encountered/resolved, things they've discovered. Fire in their eyes -> a big plus. A statement along the lines of "I had to stop because I dreamt about code" or they teach me something new -> double plus. Anyone who tells me "I don't program at home, once I leave the office the day is done" -> 'archived' immediately. 'School-coders' typically fall into the latter category. PS I taught myself at ages 14-17 (Basic -> 6502 ASM -> Pascal -> C) then went to college (computer science BSc/MSc). Then the internet came about. Yes, I'm that old… No, I can't keep up with the latest and greatest either. Still have a pet project (or 10)
- sheepmullet 11y ago> I have yet to meet a good programmer that doesn't have at least one pet project developed outside of the office. I don't. I use my limited spare time outside of work to study.
- notlisted 11y agoBut you did… at one point? (note that I wrote: "Active development not required").
- sheepmullet 11y agoLast time I had a side project was at uni. So a bit over a decade ago. At the time I was 90% theory/learning (Uni) and 10% practical, so adding in a side project to increase the practical side was very valuable. These days I'm 90% practical (work) and so adding extra L&D/theory is much more valuable to me than spending another hour coding.
- jcrben 11y agoThat really depends on how much you can put into your day job. If you're at a small firm and you have equity, it may be more worthwhile and interesting to focus on professional work, dealing with problems at a scale and complexity beyond personal projects.
- cableshaft 11y agoI took an A.I. class and decided that was a good opportunity to teach myself Python, since the professor didn't care what language the assignments were in as long as they worked (I specifically asked her if using Python was okay too). It took me longer to turn in each assignment because I was getting tripped up on encountering certain things in Python for the first time, but it was definitely a better language for the programs we worked on (I think everyone else was using Java), and I liked the language so much I still use it whenever I can today. But my degree was never going to teach me Python. I had to decide to learn it myself. Pretty sure we also learned Prolog in that class, but that we had instruction on.