Hacker News new | past | comments | ask | show | jobs | submit login
A guide on how to be a Programmer (2002) (github.com/braydie)
207 points by gnocchi on March 24, 2016 | hide | past | favorite | 44 comments



After reading the first few bits in the "beginner" section, this reminds me of my experience with "Lessons in the Fundamentals of Go" by Kageyama Toshiro 7p [0] (Go the game). It's a terrific book where he stresses the fundamentals even if you feel like you're above it. I read the book cover-to-cover many times at different stages of my life as a go player, each time learning something new.

The book starts on ladders, a pretty basic concept that I teach to beginners within 15 minutes or so of learning the rules. [1]

  Still on ladders?  Ridiculous!  Even looking at this page is beneath me.

  Yes, but even if you feel you are being cheated, read on a little further.
  Don't forget the fundamentals.  Our study begins with ladders.
[0]: http://www.gobooks.info/g28.html

[1]: http://senseis.xmp.net/?Ladders


What a good book that is! I am reading Kageyama for the third time now, always coming away just a bit stronger.


What's "don'"?


It's a long line of text. HN puts monospace text in a fixed-width container, so you need to scroll right inside the box to see the rest of it.


Ugh. It's like Slashdot with its interface where you need to hover. How do do you hover on a mobile? I don't visit Slashdot much any more, because most of my surfing is on mobile. And I won't be scrolling little windows of monospaced text left and right, left and right, over and over, any time soon.


There's a horizontal scroll bar :)

I'm not sure how to format a block quote without it.

Edit: Well, just added newlines. Seems to look ok.


Don't use leading spaces, just use >

Or do use leading spaces, but insert line breaks. Remember that people on mobile have very short screens.


Scrollbars are invisible in my mobile browser until I scroll the box. It just looks like a badly-formatted quote. Something to keep in mind if you're a ddveloper.


There's some heavy stuff in here.

> Go home if you have a contagious disease. You should go home if you are thinking suicidal thoughts. You should take a break or go home if you think homicidal thoughts for more than a few seconds. You should send someone home if they show serious mental malfunctioning or signs of mental illness beyond mild depression. If you are tempted to be dishonest or deceptive in a way that you normally are not due to fatigue, you should take a break. Don't use cocaine or amphetamines to combat fatigue. Don't abuse caffeine.

https://github.com/braydie/HowToBeAProgrammer/blob/master/en...


That's my favourite part of the entire article as well -- the author clearly knows what he's talking about.

It's actually surprising how many people do the opposite to this advice. Often it starts with nootropics and then continues into more dangerous territory.

It seems to me that people within companies that encourage competitiveness between employees are more prone to that. I.e. if your company only gives bonus to the top 10% of employees when ranked by productivity ("productivity" being defined in any way), that's a bad sign.


If you have such problem : don't go home, search for someone to talk to. It's not only for you, it's for your entourage too.


Nootropics—it's part of the meaning of the name—are supposed to be used when you're already perfectly healthy, to optimize further. If you're using them to compensate for a problem, you're using them as medicine, and that's outside their "tested configuration." You should see a doctor if you need medicine.


Technically I agree with you, but at some point you get so used to being optimized that going back is just as bad as getting sick. The most successful nootropics like caffeine and modafinil easily become long-term medicine for the problem of being less awesome than you otherwise would be, even if you're medically in the same health in either case.


Seems like tech is turning into investment banking


It seems like the similar factor is the allure of money (for very high performers) in both professions.


Well, a driving factor too is the increasing stratification of the economy. I would've probably just been a programmer as a hobby if left to my own devices, but i see programming as maybe my only chance to lift my family out of poverty.


What about modafinil?


I haven't read the article yet (I intend to do so when I get some free time). But the best advice I can give you for maximising your productivity as a programmer is to sleep when you are tired. Try not to make an exception of it.

Some people are not very good at organizing their free time so that they get enough sleep the night before. This will hurt your career as a programmer. If you want to improve your performance, drugs will be nowhere near as effective as sleep.

If you have a social or medical situation that making it so that you can't sleep, do whatever you can to fix that problem. I advise you to try to make it your top priority. Get professional help if you need it.

If you are in a situation where you can't sleep because your work/commute time is eating into your sleep time, quit. You are damaging your health and also your ability to grow as a programmer. It is not worth it in any way.

Nothing else I have done has been so important to my life and career as the above.


Agreed here. I found myself lethargic and frankly stupid until I discovered, through a sleep study, that I have sleep apnea. To cure this, I was simply prescribed an anti histamine pill, to be taken once a day, and a corticosteroid spray to be taken in the nostrils once a day. My sleep apnea was cured within a week and my abilities as a developer increased tenfold.

It is really amazing how much of a difference in your personality and abilities a good night's sleep can make.


I would also add, never sacrifice your health in general for a job. It should be possible to maintain a healthy diet, exercise regimen, sleep schedule, social life, relaxation techniques, and perhaps still have a bit of time for other hobbies.


Not only that- work in the morning. Get up, eat something, then try to start working asap after that.


Just my 2c anecdote:

I started using 100mg/day modafinil for the first time about a month ago (week days only). I felt no clear discernible cognitive enhancement that is often said about modafinil use. What I did however notice is that it does a good job keeping me awake to handle one more day in a sleep-deprived state ... only to crash with a god awful hangover a day later. (Severe headaches, dizziness and loss of physical strength). Modafinil masks your exhaustion artificially.

I'm down now to 50 mg (broken pill) for days I feel I need "a starter". This seems to be an optimal dose for me right now but I am certain I won't be using it long term or in larger doses.


Just quietly with those side effects and the fact that you didn't stop suggests you might want to consider whether you have a problem from all the angles. Consider all the silly angles as well. It may be you don't but please entertain the other possibility too. You only get one brain and one body. My best wishes to both.


I would say it falls into the "Don't abuse it" category


That's just too vague to be useful.


Is "don't do it" concrete enough for you?

Don't do it. At all.


I agree, the article is equally vague about caffeine. I only intended to link the two, not clear up vagueness :P.


https://github.com/braydie/HowToBeAProgrammer/blob/master/en...

This one weird trick has helped me solve so many problems that I thought were impassable in my day-to-day development. Bonus points if you couple it with purposeless walking.


Walk to the coffee machine. Explain the problem to the coworker at the coffee machine (if no coworker is nearby, just explain to the coffee machine). While explaining the solution will magically materialize. This variation of the rubber duck method is so effective it's scary.


I absolutely do this as well and I'm not ashamed to admit that I've been able to come up with some solutions by smoking a bit of weed and just thinking about work. It can really open your mind if you can think clearly enough.


For the managerial myth of "It is possible to estimate software development reliably. (It is not even theoretically possible.)", can anyone provide good resources/references?


I'm pretty sure the canonical source is "Mythical Man Month" by Fred Brooks.


Step 1. Learn how to code

Step 2. Get someone to pay you for it

On how to be a good programmer though, this seems like a solid guide. Looking forward to reading through more of it.


I think that Step 2 can be replaced with the even simpler "Step 2. Code". Paid programmers are not the only programmers.


The thing on this guide that is big for me is "How to Learn Design Skills" but then the suggestions are underwhelming. If there was a list of "canonical" well designed projects to learn from, that would be helpful.


> Since I have children, I try to spend evenings with them sometimes.

My emphasis.

Next in this series: "How to be a parent": step 1 be home for dinner -- You answer to your kids first and your boss second.


I like that "Choosing Languages" is considered advanced.


Is there some way to generate an epub based on that repo?



Great, thanks :)


If not, then there's a project to do.


Its too vague. too much wanting to convey in one article


As there is a table of contents with separated sections, I'm not sure we can consider this as just an article. It looks more like a book/guide to me. I think you can read its different part over time and not in one shot.


this is why you should implement good test coverage in the beginning




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

Search: