Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Do you have any outlier examples in programming?
2 points by jeira on Oct 22, 2011 | hide | past | favorite | 5 comments
Hi Hackers,

I was wondering if you guys know of any examples of guys who have been programming say, for less than 1 year and are already proefficient at that.

If you do, do you know what their method was to learn how to program?

Thanks for all the responses in advance :)




Yes!

I hired 2 programmers more than a year ago. One of them was a guy with a lot of experience and another was a girl with only basic programming knowledge (university, first year). It was a valuable experiment, because my gut feeling yelled HIRE HER, but at the time it seemed like a completely irrational decision :)

Anyway I had to let the guy go 4 months later, because he didn't progress fast enough (imho, too lazy/ego). In fact, just after 4 months the girl was already much better!

So how?

* Personality: high intelligence, abstract thinking, perfectionistic tendencies, fast learner

* A good mentor: someone has to constantly look over and point out design flaws/errors/bugs (btw, I had to do it only once with her! With other coders I had to do it at least 2-5 times per bug/antipattern type)

And the most important thing:

* Write consistent code!!! So when you make a bad design error or a bug. Rewrite it again (a function, a class)! And again. And again. Until your code is consistent. Whitespace, curly brackets, comments, variable names, function names, class names. Absolutely everything. It starts with tiny things like:

if(x) {

vs

if(x)

{

When you copy-paste a code snippet from a website - rewrite it so it matches your own style!!! And repeat! And repeat!


You should be using a standardized code formatter in an IDE to take care of the bracket and spacing issues, etc there's no sense in putting a bunch of effort worrying about something like that. You can take a room full of 10 developers and debate until the end of time whether a bracket should be on the same line or next line, its personal preference and the most important thing is to use a formatter to standardize for your company, you will never get everyone to agree and its a pointless argument. Of course the naming is important but its really a fairly simple concept, just to always use descriptive names, in your example using x as a variable name is an example of NOT doing this


I second that notion. I've always been irrationally anti-IDE, but in the past few weeks I've been using Pharo Smalltalk for some personal projects and I've realized how much a good IDE can do for you. You should let your IDE handle trivial issues like directory structure, file formatting, etc.

When I write Smalltalk, I ignore formatting and indentation. I just write code. When I'm done, I hit Command+r and the editor formats everything for me. This is just one of a billion tiny bureaucratic issues that the Pharo environment handles for me.

(Offtopic: makes me wonder why we don't build programming environments from the IDE down instead of building them from the language up. Our current approach doesn't seem to be working very well, IMO.)


I agree, I use what I consider to be a great IDE for the language I work in, it does variable suggestion, everything and its great because it makes me write code faster and not cut corners


It depends what you consider proficient, I was definitely producing in my job at less than 1 year experience but I definitely feel that I know more now than I did then. I think it takes at least a year of solid experience to get to the point where you can really be reflective about what you do and to understand writing clean, maintainable code. (and every year from then on out just adds more of this) For someone who is motivated, as I was, its fairly reasonable to be able to start producing with only a few months experience, to where you can make things that work, just that the solutions you come up with may not be as elegant as they could be and the code may be messy. It takes time to get that extra sense when coding to use best practices, etc and this is also related to who you work with, the more you can be around more experienced developers, the faster you will progress




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

Search: