3 ms·
Ask HN: Advice for a fledgling hacker?
_Hacking For Dummies_
OK. I'm pretty new around here.
I've been scouting HN for a few months as a passive user, and I've seen a lot of interesting stuff. You guys seem like you've got a pretty solid community going on. A good number of the questions that get posted are answered in real depth, and most of the links are of a good quality - and are of interest to a newbie like myself.
I've decided that I'd like to join up and get more involved in the world of hacking. Plus, I plan to post some interesting stuff. :)
(I've also signed up at reddit, but I don't necessarily expect to get good answers to questions. Once you cut all the crap out of your front page and post to specific subreddits, it gets better, but there's still a lot of pointless commenting and posting going on.)
I'm currently a science undergrad. I've got HTML and CSS nailed - I started off with the easy stuff - and now I'm getting pretty good at hacking about with JS thats almost what I want, but not quite. Hence the messing around.
So far I've had some advice from a certain friendly duck, who told me about the importance of knowing how to write good algorithms.
Have you guys got any other advice for a newbie programmer? For example, what programming language would you recommend I started with? And do you have any ideas about how to get a foot in the door of the hacking world (like good experience and making contacts)?
Even the most general and obvious stuff is much appreciated - as, more likely than not, it won't be obvious to me!
Thanks very much! :)
- Wihon
- davidw 16y ago* Get involved with open source. * Ruby and Python are good languages that you can do a lot with. * Eventually, knowing some C would be a good idea. * Run Linux as your desktop.
- wihon 16y agoThanks! > * Get involved with open source. Say, by helping improve the code of open source apps, etc? And if you had to choose between directing my attention towards Ruby or Python...? I'm currently in desperate need of a new laptop. Can you recommend any basic requirements for programming? I have a rough idea - something along the lines of lots of RAM and not much else - but getting it from the horses mouth (no offense (: ) would be ideal. Thanks again!
- gaius 16y agoThe Ruby vs Python (vs any other language) question is easy for a newbie: what do the people near you (personally or professionally) use most? Then you will have access to advice, sample code, relevant documentation etc. If you strike off on your own it's no less fun, but it will take longer for you to get the point at which you can do something "useful". You say you're studying science: perhaps NumPy or Sage (http://www.sagemath.org/ http://www.sagemath.org/) would be useful? (I don't know what the Ruby equivalents of these are or if they even have them). The same is true for your OS - if the people around you are using OSX (for example) then you should too. Make an actual "decision" when you identify what it is that your current choice doesn't do that some other OS would do. For now the availability of help if you need it outweighs everything else.
- wihon 16y agoI'm all on my lonesome atm, so all these choices are mine. The college IT guy at my university (he's just completed a PhD in quantum computing - and he's been forced to work as the maintenance guy because of the recession, poor guy) works with linux, and I imagine I'll be able to ask him for help and tips. So linux it is! Cost is also a consideration, and while Macs aren't bad value for money (http://bit.ly/3SGXeJ http://bit.ly/3SGXeJ), but they're still expensive. So linux suits me fine. :) I think I'll go with Ruby too. I had a look around both sites (Ruby's and Python's), and decided superficially that I liked Ruby better, as I've nothing else to go on. Plus, Ruby's online trial thingy (http://tryruby.org/ http://tryruby.org/) is pretty cool. :) As far as programming for science goes, I'm not sure tbh. The main program I use at uni is ChemBioOffice (by Cambridgesoft), but I'm not sure what that's programmed in. Any ideas? Can you recommend any particularly good ways of learning a language? There seems to be some debate over rote learning, then programming vs. practical learning. Any good tutorials etc that you know of? Thanks to both of you!
- gaius 16y agoYep, so Linux is the right choice for you based on your immediate environment (but there was no way for the first poster to know that :-) ) No idea about that package, but there is BioPython (http://biopython.org http://biopython.org) so that's a possibility. My usual advice for learning a language is to get the "plumbing" first. You don't even need to understand exactly what's happening at this stage, but learn to say parse command line arguments, read and write a disk file, connect to a database, open or listen on a socket, that sort of thing. You can just cut and paste code to do this at this stage. This gives you a framework for "doing stuff". Then it's just a matter of identifying a problem and gradually working your way towards a solution. E.g. if you wanted to read a file, do some computation, then store the result, you could concentrate on the interesting part. You'll learn how the plumbing actually works by osmosis as you go along. If I could give some advice to my younger self, and he was programming in a vaccuum, I'd have said start with ML.