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

Just as a tangent, because I didn't want to bother with my own Ask HN:

> Starting salary for a fresh junior is 40k and that is just someone who know HTML, CSS and Photoshop let alone if they actually know a server side language.

I know, like the back of my hand: HTML, CSS, Photoshop (and Illustrator/InDesign/Premiere/etc), Javascript, PHP, Ruby (not specialized to Rails, but with a year or two of experience in it), and C/C++. I've had more than a year's experience in: Java, Lua, IA32 and ARM assembler, Haskell and Clojure. On top of that, I have years of Windows and Linux sysadmining, DBA, and tech support/computer repair knowledge.

...but I'm only in my first year of University, and have literally zero measurable work experience with any of this stuff (no previous employers in any sort of technical field, no references, no portfolio..) In short, I have no proof that I can do any of the stuff I can do... what should I do?



Please understand that I intend this as honest and helpful: you are completely, wildly deluding yourself.

It is unlikely that someone with your background really knows even one or two of the tools you mentioned "like the back of your hand" by professional standards. It is completely implausible that even the most gifted and enthusiastic geek on the planet knows all of them to that standard at your stage in your career.

The world is, however, full of people (usually students with little or no professional experience) who think they have these skills. It just comes across to experienced professionals as arrogant, ill-informed, lacking in perspective... amateurish and risky, basically. Would you hire (or even interview) someone you thought was like that?

My advice to you is this: decide which skills you want to highlight at the start of your career, and if you really have no demonstrable experience with those skills, make something. Build a simple game in C++. Write a simple but well presented CRUD application to show your web skills. Write an interactive symbolic calculator in Haskell. Make sure the code is clean and you have some respectable documentation to go with it. You presumably have several years to go at uni, so you have plenty of time to develop your skills. Just keep the example programs you develop along the way.

Actual demos of real projects that you have personally completed are just about the best advert there is for your programming skills. Even if those projects are just small demos, they still beat beautiful but empty CVs any day for getting noticed and attracting the right kind of attention from prospective employers.


My advice to you is this: decide which skills you want to highlight at the start of your career

I think this part of Silhouette's advice is more critical than its brevity suggests.

I can only say this in hindsight but it's critical for you to only highlight a few of your skills (or even just one, in some cases) even if you have many. Saying you can do HTML, CSS, Photoshop, assembler, Ruby, and 101 other things is not going to floor the sort of people you need to impressive. I didn't know or understand this at 20. At nearly 30, I know enough people and have had enough experience to know that even if you're not a specialist, appearing to be one and then pulling out your jack-of-all-trades card is the most powerful way in to some great situations.


You're right, of course. I would never list any of these skills on my resume, or tell any interviewer that I could do them. I would never try to get a freelance contract that requires these skills. They're completely self-taught, completely untested, and I have zero confidence that I really "know" any of them. When I said I have no proof—I meant I have no proof for myself, either, as an empiricist.

Really, what it amounts to is that when I come home, I spend twelve hours (that is, 4PM-4AM) "studying": reading programming books, testing out bits of code, writing scripts and hanging out in places like /r/coding and LtU. It's basically my sole hobby, and I started when I was 11 (with a website run on a scrounged Pentium Pro off a Slackware LAMP stack.) I'v continued teaching myself various skills since then, never producing useful output, just reading and testing myself. I don't have confidence that my skills are anything more than a bunch of academic knowledge.

If I recall, these are the most code I've ever actually written:

* Stargazer, an interactive galaxy creation program in SDL/Ruby (you plot and name stars, create flight/jump/trade paths, and classify arbitrary three-dimensional regions with arbitrary metadata; it's for sci-fi writers.)

* Persona, a webapp where you create a user, that user creates several fictional characters (personas), and then, as a specific character, you answer questions out of a user-generated pool in order to flesh out your individual character. It's sort of like OKCupid in reverse—you specify the "factors" your graph of characters should display in advance (love, hate, admiration, apathy, etc.) and then the service helps you answer questions in a way that will conform to those pre-ordained relationships.

* Nameclasser, a Bayesian classifier trained on the details of individual words (sound, length, derivation, etc.) You feed it a dictionary; it spits back a subset of it usable as "interesting" character names.

* Folio, a mark-up language (and reference parser) similar to markdown, but intended for fiction (distinguishes pages, has footnotes, does neat things when it recognizes sections of screenplay-like dialogue, etc.)

* Christmas, a graph adventure (it's a text adventure, but with the interface being clickable words in bubbles—basically an ever-expanding tree of circle-menus.) It's two-player, networked: the client(s) are in C with Lua extensions, server in Clojure. It also features something I've never seen before: network-transparent undo. (Only works under certain world-model-specific conditions, of course.)

* SMS Importer, a little tool to sanitize a copy of your SMS database, copied from your iPhone's backup folder (SMS data has always been stored in 3d0d7e5fb2ce288813306e4d4636395e047a3d28.mddata, if you're curious), and present it as a folder of formatted-text chat logs. (It also keeps its own gateway database, just merging in previously-unseen texts, so you can delete an SMS record on your iPhone—it makes it a might bit faster—and still keep the record after re-importing.)

* An unnamed, unfinished project involving editing timelines of narratives and meta-narratives in time-travel stories.

* Nodepad, a hierarchical outliner (where every "node" was a folder+rtf file underneath, so you could make any node the working root), and Sponge, a visual to-do list (all the tags were importable 16x16 icons), both in C#.

* Wikirei, a wiki designed from the top-down to look as clean, presentable, and non-wiki-ish as possible when you don't have editing rights, and elegantly expose editing features when you do.

And each and every one of those is crap, in my opinion, and I would never release any of them. ...Having said that, and looking at that list, my problem might more be anxiety at releasing my work, than actually producing it. I've been working in a silo for so long, with no feedback as to whether my code has any quality (except what books say) that I have no idea what others will say when they see mine.


This time, I think perhaps you don't give yourself enough credit. There are a lot of interesting ideas in that collection, things that would grab my attention and make me curious to ask you more about how you did it. Even if you never polished those projects to a professional standard, it is impressive if you actually wrote that many useful/interesting things by your age.

Again, I would recommend picking one or two examples in the area you're most interested in pursuing first in your career, making some effort to polish them up to what you would consider a professional standard, and then using those as your "portfolio pieces". I've done my share of interviewing, and really, not much shouts "Hire me!" faster than someone who can show that sort of interest (really important when you're hiring for a position where no applicants have much experience yet) and who has made the effort to show what they can really do.

Also, for what it's worth, it's very common to be nervous about showing your code to others. I've been programming professionally for a long time, and I still hate it. I'm never 100% happy that there wasn't a better way to do things, or that something wasn't a little bit untidy. But programming is a world where the best is the enemy of the good: there is rarely one "right way" to do something, and there comes a point where you've written code of sufficient quality that does the job it needs to do. Trying to refine it further is usually just a form of pride/vanity at that point, and with experience you will learn to recognise this in yourself (and, in due course, in those you work with or manage) and to just say something is done and ship it. You can always see neater things you might have done in the code with the hindsight from writing something once already, and sometimes that will really pay dividends later, but adequate imperfection is the world we work in most of the time and it's the same for everyone.


It sounds like quite an accomplishment for your age - Silhouette is just trying to ground you in reality, but it's still praiseworthy.

Looks like you're pretty much into writing fiction? (or game scripts?) If that is your passion, then maybe you want to look into that?


Not to discredit you, but I get very suspicious when people merge C and C++ to C/C++. There really not the same language, you know. And I'm yet to physically meet someone who actually gets Haskell.

I'm not very experienced, but more often than not, the devil lies in the details. Reading K & R is one thing, but being able to track down why your code sometimes gets a SIGILL is an important, perpendicular skill. Perhaps you could try patching some open-source software? If you really know all that you claim to, you'd be invaluable in any project.


> And I'm yet to physically meet someone who actually gets Haskell.

I've met someone who gets Haskell. His name was Wadler, mind. :-)


Nice!

How have you met him? Are you his student?


Look more closely at what you've done - for the sake of a resume, almost anything can be turned into 'experience' (I believe I spun 'computer lab monitor' pretty well once upon a time). In addition, take what you know and do projects with them. Something you can point a potential employer to (github repos, open-source project contributions, etc). What I want to see is initiative and creativity and, if possible, cooperative projects, because I know that someone coming out of uni isn't necessarily going to have team-coordination skills (communication, consideration, etc), but those can be developed.


You say:

> I know, like the back of my hand: Javascript, PHP, Ruby, and C/C++. I've had more than a year's experience in: Java, Lua, IA32 and ARM assembler, Haskell and Clojure.

And:

> I have no proof that I can do any of the stuff I can do.

I don't see how both these statements can be true. If you know some language "like the back of your hand", you'll have written significant amounts of code in it, at a bare minimum I'd say a few thousand lines.

You're claiming to have done significant work in 9 languages, and have no code to show for it? That's a bit odd, isn't it?


I don't have an answer to your question. I am suspicious that you have zero measurable experience. Are you sure? You are familiar with multiple web stacks, but don't have a single website you can point people to? You were a sysadmin for years and don't have a reference? You have zero contributions open source projects (others or your own)?

I think you might be able to find something that hints at your experience.


> You are familiar with multiple web stacks, but don't have a single website you can point people to?

Only my own homepage, which isn't proof of anything at all, since it's about as visibly complex as an FTP directory (despite doing some neat things with Heroku, Sinatra, and a makeshift Dropbox API underneath.) It used to be a byzantine mess with its own forums and wiki and project hosting—and utterly no reason for anyone to use any of it, but for the fact that I wanted to have those things, and so I made them. Now it's just pages.

I've built web-apps as personal projects, but have long taken them all down or thrown them out due to loss of momentum (I had no users, ergo no one cared, ergo no reason to develop in any particular direction...) The few that I've held onto, I would never want to be publicly viewable, as they have absolutely horrible graphic design (by me, who is most definitely not a designer.)

> You were a sysadmin for years and don't have a reference?

I have sysadminning skills—but I was never a sysadmin (except for a non-profit community center, in a volunteer capacity, as an unofficial side-job to the normal duties of tutoring old folks in Internet skills, and which shut down soon after I left....) I read articles and books about it, I download and figure out how to use $20k/seat software that is utterly useless on the single computer I install it onto, I figure out solutions to problems posted online by people who seemingly have 100x the experience I do, I tinker with machines and networks that aren't my own... but no one's ever paid me for doing any of that. I see it as a hobby.

> You have zero contributions open source projects (others or your own)?

Yup, absolutely nothing. I probably have twenty or thirty things I could declare open-source, but none of which I'm proud of—in fact, the amount of technical debt in each is enough to make me ashamed that they have my name on them (though I doubt others would see it that way—I'm somewhere between perfectionism and extreme social anxiety when it comes to work done as anything other than a direct request.)

---

An aside:

Now, I'm not saying that, with a year or so of work, I couldn't build a really damn awesome portfolio, something I could be proud of and that would show off every one of my skills. But is that what I'm supposed to do? Is that better than just working my way up from an entry-level job, pretending I have no skills? I honestly have no idea; that's what I've been doing up until now.

I should mention that currently, I'm unemployed, and very quickly running out of money. Obviously, I don't have a year to put in right at the moment, even though I do have the skills right now :)

I ask my parents what to do, and they tell me to get a job for minimum wage in a grocery store. They're simply happy that I'll be able to make $50k/yr once I graduate (they've made that much, combined, for their entire lives.) In school, every class I'm allowed to register for, I pass without having to learn anything; and all the classes I'm interested in, I've learned by the time I qualify for them. Basically, I'm coasting, and I've gotten really good at it. I don't have any mentors or role-models to pull me forward, so I just drift.

---

Sorry, that became more therapeutic than technical near the end—but the answer is yes: right now, I'm quite sure that I have no proof of anything.


Hi. I am a freelance web designer, and I am looking for a web developer to partner with.

You will need to create websites and web apps for local clients, which will give you the experience and the references. At the same time you'll be able to make some money.

And the flexible hours you get as a freelancer means it wont interfere with you studies like a regular job might.

If you are interested, email me at alexwyser@gmail.com


You really should consider releasing your work. It's a great motivator to do more and release often.


Sign up for a free account at elance.com and spend a day taking their tests. It's the fastest way I can think of to demonstrate that you know something. Even if you don't take any work through the site, you'll have some evidence of your skillset that you'll be able to show potential employers.


I agree with mnemonik.

You wouldn't be able to gain experience in those listed skills without using them for something. There has to be some work of yours out there somewhere. And if not, start doing some freelance work or launching some of your own ideas/projects onto the web. It's a great way to get real experience out there and extra rewarding when you see users interacting with your work!




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

Search: