Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

i could not have said it better myself. even if he is smarter and not just luckier, so what? the fact of the matter is, in sheer production terms it's becoming increasingly unnecessary for everyone to have a job; it's just that the "working and 'making your own way' is the only right/moral/ethical/deserving way to live" mentality is so deeply ingrained in people that they are unwilling to face up to the fact.


I am in this exact age group, and my circumstances are almost similar. I got lucky, my family is very close knit so I'm able to live with my mother, and up to 3 relatives have given me opportunities to move in if my mother couldn't handle me playing parasite.

I made the dumb mistake of going to a small private college for CS. There were only 2 professors in the department and at most around 8 seniors, so we had an insanely good professor to student ratio. Problem is, the career center had no connections in the tech industry and as a result I have been trying to solo my way into a software job having graduated in 3 years with my bachelors with a 3.3 gpa and no internships since the year I was planning to have one in the summer, I found out I could graduate early so I took the chance.

Then I found out almost every intern opportunity requires an active .edu email or some other validation to show you are an active student. So I'm in the awkward position where I'm working on FOSS projects whenever I can, while playing homemaker for my mother to "earn my keep", and trying to get a leg in.

But the real getter is that I am not some rock star coder. I'm not really good at it, at all. I don't have great recall of the myriad of algorithms (I know what A* is, but would have to Google a proper implementation). Same with with a spline or a rope. If I write software, I usually end up spending a few hours on ~300 lines just debugging it into a working state with a standard library reference open the whole time. I understand the languages I use - I can write regexes, I know locks, etc, but I usually just hit some gap in my knowledge snag that gets me caught up for a while. For example, I was trying to use Python subprocess to do some calls into nvidia-settings and various other fan controllers(I was writing a script to intelligently control my machines fans since the default Linux fan controls kind of suck). Took me 3 hours to figure out that the best way to get standard out was to use subprocess.check_output because temp files as pipes didn't work (at least for me).

So all my interviews so far have basically gone the same way - I don't produce perfect code from memory, and as a result I don't get consideration (there are more reasons than that, but I get the impression), especially without any past employment experience and only 2 personal projects (which are really just scripts) across github and gitorious. I also have an awful personality most people can't relate to - I'm an introverted cynic. Even if I can try to fake behavior around others I always crack and act like myself again at some point. I have a really hard time making small talk and being chummy, for example.

So I can relate to the large portion of the population that isn't an Elon Musk super-genius entrepreneur or some John Carmack coding god whose every line of code reads like prose that five hundred years from now professors will read off to CS students like Shakespeare. I'm not even particularly average, because I have very little concrete experience - I just have a gigabyte of source files for homework and projects from school, a few commits to various FOSS projects that changed a line or two. I'm trying to make something I can show off but I lack the imagination to come up with something novel that I can realistically build by myself in a month or two (since I'm always worried I might end up just like the kids in this article, out on the street).

Sorry for the rant, I just feel like the guy two posts up is kind of lucky to be talented.


Why even bother with internship? I think this kind of system where you have to work for free just sucks...

Also it sounds to me as if you are actually a pretty good programmer. Not many people would be able to stand debugging their code for hours. And frankly, I think it is normal that it takes this long to get a complex algorithm running. That is why in most programmer jobs, you don't implement any fancy algorithms at all. You use libraries for that, and only do primitive CRUD operations using some framework.

Personally I would have to Google A* again, too, and I have never heard of "rope". Spline only rings a bell, I think it is used in graphics programming, but I wouldn't know what algorithm is behind it.

Reading further, I think you are also picking tasks that are too hard, like hacking around with NVidia device drivers? Why not experiment with a nicer and cleaner environment like HTML5? I must admit your choosing NVidia device drivers would seem a bit like a red flag to me, like a failure of judgement - why would you pick something horrible like that. Which is of course a bit insane, because we need mad hackers to drive forward technology. I am just saying...

But I think you underestimate your coding skill by a wide, wide stretch. Most people couldn't even begin to hack on NVidia device drivers. (Or maybe not device drivers - not sure what you were trying to do, but it sounds like low level stuff).

Wondering what you would charge for implementing a small project?


`nvidia-settings` is a commandline utility to control graphic card configuration. It's used to set things like SyncToVBlank, FSAA level, Vibrance, multihead positioning, and even GPU and Fan speed, since you can also query temperature.

Hacking the original nvidia drivers is pretty much impossible, they are closed source after all :)

One of the first things I've implmeented when I learned programming was mapping ACPI events of multimedia buttons to various calls to XMMS. Having something physical to relate to while coding is a big help for me, and makes a lot of sense. I assume that's one of the reasons a lot of people get arduino, rPi, beagleboard, etc... If it moves or interacts with the environment, it's easier to wrap your head around it, and more rewarding when you get it to behave as you want it to.


> Hacking the original nvidia drivers is pretty much impossible, they are closed source after all :)

You don't just open binaries in hex readers and see the program running before you like Neo in the Matrix? :P


> But I think you underestimate your coding skill by a wide, wide stretch. Most people couldn't even begin to hack on NVidia device drivers. (Or maybe not device drivers - not sure what you were trying to do, but it sounds like low level stuff).

It isn't hacking device drivers, its just using the binds to control the fans and monitor temperatures on gpus from nvidia-settings. It is the nvidia frontend configurator for the proprietary driver. That is why I brought it up, it really is just these two lines:

nvidia-settings -q gpucoretemp nvidia-settings -a [gpu:0]/GPUFanControlState=1 -a [fan:0]/GPUCurrentFanSpeed={}

But they weren't even the problem, I'm talking about a python standard library implementation of what is effectively execVP in Python. I tried a half dozen ways to get standard out from that thing. Makes me feel dumb.

> Why not experiment with a nicer and cleaner environment like HTML5?

I struggle a lot with CSS for one. I can't remember all the different modifiers on tags, I don't remember hex colors, and I keep messing up ids, selectors, and classes syntax when I try it. I'd get to know Bootstrap if push came to shove on that front. I'm pretty fine with html, understand the syntax enough that the Mozilla Developer Pages + a lot of Google lets me structure a web page well enough. I've done some Django to try to build up my resume, but never built anything real serious on it besides tutorials mainly due to that lack of imagination for the "what novel thing can I make that is really useful?" problem. Worst of all is the most I've done in Javascript was the Code Academy track and the Jquery track. So I can read JSON and do the most basic JS stuff, but my interactions in a web app barely go beyond GetElementByID.

> Wondering what you would charge for implementing a small project?

I have no idea. I currently make some side cash just playing tech support in my town. I have never even tried contract work, mainly on the basis I have no portfolio of real serious projects besides school ones. I've only been out of school for a few months, and usually spent my summers taking classes to graduate early (I did try applying for Summer of Code my Sophomore year, but I can't blame my applicantee for thinking rewriting a garbage collector in a new language might be a little much for someone who had less than 6 months experience with C).

One problem is that my tools experience is practically non-existent. I know and have read lots of books, read some code samples and projects, read a lot of dev blogs, on a lot of languages - mainly because I like all the different paradigms. So I can look at C, C++, D, Python, C#, Java, Javascript, Bash, Regexes, SQL, and even a smidgen of Perl and Haskell, and understand what is going on, write something easy. But since I haven't landed a job yet in any major discipline, and because I am mainly interested in the lower level stuff, I haven't really specialized enough to tackle contract work. I imagine I'm around a hundred or so development hours away in any one language from being able to truly sell myself as a candidate for such.

I'm currently implementing keyboard shortcuts in Firefox Mobile for hardware keyboards, if you want an example of what I'm doing. I use my TF700 a lot on the go, and with the keyboard dock it is annoying not to have a lot of the desktop shortcut functionality. I just started today though, but I found the implementation of keybinds from desktop Firefox, and once I find the skeleton keybinds they already have in mobile (they do have a few) I'll just port over the major ones that are missing, with a check to only use them when a physical keyboard is in use. But that might take a week to flesh out, commit, etc. And when you are an unemployed college graduate, a week is a lot, and that is small!


"I tried a half dozen ways to get standard out from that thing. Makes me feel dumb."

Sometimes real world programming is annoying like that. I still stand by my point: you seem to be able to autonomously dig through API documentations and look up algorithms on Google. That makes you a good programmer.

"I can't remember all the different modifiers on tags, I don't remember hex colors, and I keep messing up ids, selectors, and classes syntax when I try it."

All these things can be looked up, also I think it is good to keep CSS hacking to a minimum (don't apply too many tricks). Using something like Bootstrap should eliminate most of the need for that?

I think we will wake up in some time and realize that with CSS we have created on of the most unwieldy programming constructs ever. Once they'll introduce scripting (which is planned I think), it will be real hell. The problem is that everything has so many intractable side effects.

As for contracting: I know the feeling of not knowing anything well enough to sell yourself as a specialist. I think the solution could be to just take on a small project (like a web site) and not be too specific about the technology.

Firefox Mobile keyboard: see, most people wouldn't even know how to start doing that kind of thing.


I'm in the same boat. 2 yr degree and 3 yrs experience (one employer). Reading through your comment I imagine that many people are in this boat. The part that is most frustrating around HN is it seems like everyone has ideas and is a rock star and many successes and jobs are falling from the sky.

It can be discouraging when you have none of that. Most discouraging is when people say things like "Just move here and you'll have jobs flung at you daily!" Relocating isn't something I can do on a whim.

I know that given the chance I can excel but no employers want to give it. It seems almost like a fix when the same positions are left open week after week but you've already been turned down (with and/or without an interview).

For me ideas are hard to come by so what I've been doing is finding things that annoy me as I do them. Can I do anything about that? Most of the time I can't but recently I've stumbled onto a couple ideas that I can.

So this post is slightly relevant: I believe many people, including some of the ones that seem to have it all figured out, are just like us. Continuing to learn and having to research to get things to work; not machines.

Edit: nobody here has said this but many times it's the tone I read it in.


3 years experince sounds like a lot from this side of the fence. Every rejection letter mentions the lack of any industry experience.

> It seems almost like a fix when the same positions are left open week after week but you've already been turned down (with and/or without an interview).

I have gotten the impression after about a hundred cover letters that a lot of these open positions are not meant to be filled by candidates fit for them, but they exist as HR's always available gap for the rock star with 10 years experience in every language to come and apply for so they can get a third the salary they can get elsewhere. Like they just leave positions open in case a genius feels dumb enough to take it.

> For me ideas are hard to come by so what I've been doing is finding things that annoy me as I do them. Can I do anything about that? Most of the time I can't but recently I've stumbled onto a couple ideas that I can.

I mentioned in another post but I do the same. Currently am implementing desktop keybinds in Firefox Mobile if you have a hardware keyboard connected, since I use my tablet + keyboard a lot and having no ctrl-t, ctrl-w, etc is annoying. Started today on that project :)


I agree 3 years is more than many. A pitfall is it was with a small company so everything I learned (I learned a lot on the job) was the way they ran things and going from what the more experienced programmers said a lot of that was not how things ran elsewhere.

Even with 3 years though it seems that companies now want 5+ or more (it always seems out of reach).

Good luck with your project! What you described is completely foreign to me and I would feel much more lost than you I'm sure (more of a web but not mobile yet guy).


I wouldn't worry too much about web vs mobile. Give it 5 years and mobile browsers (on Android at least, the other two platforms are in lockdown) will be beefy enough to run webgl + html5 applications so I imagine a lot of people will start switching from apps to bookmarks of their favorite games.

Especially if internet service (and in particular the wireless) in the US gets less shitty.


"It seems almost like a fix when the same positions are left open week after week but you've already been turned down (with and/or without an interview)."

I've heard that some companies even post fake job offerings because it makes them look good economically (look, we are growing and can't hire fast enough).

What about going to networking events and user groups and reaching out there?


I've heard that a lot of it has to do with "We have to advertise the position but someone on the inside is moving up." or something like that.

I've been meaning to look into meetups but haven't had much success in finding anything in my area. I did find a Ruby one recently that I could go to but I know nothing about it. Where I live it doesn't seem there are many (if any) for developers. Starting my own is just my idea of a worst nightmare.

When I get done with the projects I've picked up lately I will look into it some more as a lot of times it isn't about how well you could do the job but who you know that can get you the job.


I'll echo other people's sentiment in that it sounds like you actually probably are a very good programmer, but just a very harsh critic of yourself. That can be a good thing because it can vault you ahead of other people who have falsely inflated opinions of themselves, but it can also be a bad thing because it will prevent you from putting yourself out there.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: