7 ms·
Turning into a hacker aged 27
- JacobAldridge 16y agoBrilliant - I'm in a similar position (other, very useful and valuable, business skills that aren't worth nearly as much if I were to commit to a tech start-up, and next to no coding experience). I look forward to the journey, and perhaps some inspiration.
- naithemilkman 16y agoIt's sounds you're still undecided as to whether you want to take the leap? What are your reservations? Care to share?
- JacobAldridge 16y agoMostly, because I already run my own business (as a business coach) - built that up in Australia, then moved to London, now building it back up again. So between learning to code and putting on another client, its a large value difference in the short term. Once this business is chugging along, I'll do something more scalable. But that's just as likely to involve publishing, where I have passion and experience, as it is to involve a startup, where passion alone would need to develop experience. So it's entirely possible that I'll be sitting here in 10 years, having never learnt more than some basic HTML and CSS, because I keep creating more immediately valuable opportunities. Though I have noticed, as more of my friends have kids (we don't, yet), that 'long term' things like learning a new skill, going back to college, or even committing to a local football team, suddenly seem smaller and more realistically achievable - ask me now if I want to commit 10,000 hours to something new and I won't have time, but with a backdrop of 18+ years of child-minding in front of you, it doesn't seem nearly as large. Of course, as I understand it, kids take time too!
- billybob 16y agoThat's the age when I really started coding. Now I'm in my second full-time programming job and building a pretty great resume. My tips: 1) Study and practice. Pick a topic you don't know, choose a book that's well reviewed, and learn it. 2) It's better to ask a dumb question than to never know the answer. 3) Do a bit (not too much) of reading on things like HN and JoelOnSoftware, etc, to help you pick what to study next. (Like when I read Spolsky's argument for why distributed version control is better than centralized, I eventually decided to learn Git. Or when I saw all the buzz about Rails, it pointed me that direction.) 3) Learn the crap out of your tools. I started out with a Windows HTML editor. A couple years later, I was using Vim in Unix and I'm way more productive. But I'm still learning new stuff about it every day. I intend to know it backwards and forwards eventually. 4) You'll never know everything - don't get discouraged.
- naithemilkman 16y agoThanks for the tips. Out of curiosity, what were you doing before and what made you jump to programming?
- billybob 16y agoI was a journalist, and unhappy. Took a break, went back to school (to study music), met a girl, and we decided to get married. By that time she was in grad school a few hours away. When we married, I moved there and had to find a new job. I knew HTML and got a job doing tech support for cell phones. My employer had no internal web site and I saw that they needed a page to share links to reference sites, so I made a simple HTML page, just dropped onto a shared file server, not even a web server. Then I started adding pages of training material, etc. I had just heard (this was 2007) that CSS could be used for layout - gasp! - so I bought Eric Meyer's CSS: The Definitive Guide and studied during lunch breaks and evenings. I spiffed up the site. Next I got Head First Javascript to add some animated menus. Soon after, somebody told me about jQuery, and eventually I caught onto that. As I added more pages, it sucked to have to copy and paste my common menu, so a friend recommended PHP. I had to set up Apache for that, though, so I used XAMPP. Now I could do includes! But wouldn't it be nice to have some database interaction? I read a PHP book and added that too. Eventually the system was pretty complex, with object-oriented database interactions, permissions controls, AJAX widgets, etc. All this time I was getting advice from my best friend (we were roommates in college), who is a truly awesome coder with famous companies on his resume. And I was discovering that I really enjoyed this stuff and had a knack for it. Also, all this time, I was still doing tech support: I could be knee-deep in a coding problem and get a phone call, and I had to pick it up, and it might take 2 hours. But by the time I left, I had a good enough resume to get a full-time programming job. And I continue to learn. I've made the jump to Ruby and Rails (Ruby is a lovely language), test-driven development, etc. I'll never be DHH or Linus Torvalds, but I hope to do solid work and keep having fun.
- guynamedloren 16y agoI have huge respect for your drive and ambition, but there's something I just don't get (and it applies to many aspiring hackers/entrepreneurs, not just you). Why do you need a mentor? Why "cold emailing startups"? Why do you need somebody to "take you in"? Why not just hit the books and start hacking away? This isn't meant to be a personal attack on you by any means. I've noticed a huge movement toward "mentorship" lately, and I'm just not seeing the purpose. Even worse, those who do not get these critical mentorships wither away and blame others for their shortcomings and failures. Obviously you were fortunate enough to find a group who "took you in", but what would happen if you didn't? Downvote if you want, but I'm honestly curious as to what's going on with this mentorship trend.
- honopu 16y agoSome people need to be paid to learn something(a job), or pay someone to force them to learn something(trade $ for a grade/degree).
- Swannie 16y agoI taught myself "programming". By the time I attended university I had written a few small programs/toys. When we were formally taught Java at university, there were 10 hours of tutored labs available. I certainly didn't need any help to do the coursework, yet I went. I soon found some real hackers, who happily ripped my coding attempts to pieces (in a good way, mind). When I started work on my first attempt at architecture, I got some guidance from some of the same people. Whilst design patterns were around, these people helped me understand which ones to look at, why, and what overkill was. When I graduated and started working, I was already a "better" programmer than some of my peers, as I had been shown GDB (and hence JDB) by my mentors. However two years in I worked on a project with some talented developers, and again I learned about IOC etc. Mentors save you a lot of time and energy. They are present in almost all trades where you have apprenticeships, and I for one know I thrive in that sort of situation - the one where I am challenged by someone who has been there before, who forces me to back up my designs/arguments by reading directed texts. If I hadn't had them, I'd have found my own path. But I'd have spent a lot of time wondering somewhat aimlessly, reading semi-useful books cover to cover (yawn), and screwing up projects...
- sawyer 16y agoAs important as reading and learning tools is; my experience is that you'll absorb much more by starting hobby projects and hacking your way through them. After you've set up a development environment (on your home machine / laptop will do), pick a project that's been on your mind and just start. Everytime you run into something you don't know how to do, hit stackoverflow, read through APIs, and figure it out. Piece by piece you'll become a programmer. Good luck!
- will_lam 16y agocommented on your post. I'm experiencing the excruciating pain of not being able to get your hands dirty... having great devs is great.. but the whole process of turning your vision to reality through code is something I'm embarking on as well.
- naithemilkman 16y agoYou should totally blog about it when you get the time!
- amitraman1 16y agoIf you don't want to code, oDesk can help you prototype quickly...just stick to a budget!
- Rariel 16y agoSeems like there is a lot of this going around. My technical co-founder quit and now we're facing the question of getting another one or learning to code myself, since my other co-founder can't/won't. I remember being interested in coding at age 13, but for whatever reason I never followed up with it. I literally remember sitting in front of my Performa 636 CD looking at a web page telling me "How to become a hacker" and thinking eh... Now I wish I had taken the leap. python at age 29 is no fun. But I am looking forward to learning it and becoming comfortable, much like when you move to a new city...or at least I hope.
- orangecat 16y agopython at age 29 is no fun. I had a great time with it at 32. Of course, to fully appreciate Python it helps to have spent years using Java and Perl.
- baberuth 16y agoNai: Congrats for taking the plunge. Getting a faux internship will be immensely helpful. 18 months ago I did the exact same thing, begged a startup to let me work for them for free. Having someone who is invested in your success, interested in making you better, available for you to turn around and ask questions makes the process way faster. 18 months later, I still suck, but most importantly, my mentors taught me how to learn on my own, where to look for documentation, what sorts of problems to look for. I'm definitely not a 'hacker' in the way you're talking about, and every time I think I know something, I get slapped back to reality, but the REAL satisfaction is being able to just keep making forward progress. To be able to sit at a terminal and feel like your startup's destiny, YOUR destiny is in your hands is immensely empowering and a far cry from waiting and hoping your developer is on the same page as you. One piece of advice, which I still struggle with: don't try to bite off too much. There's a compulsion to understand the entire codebase before you commit to that host startup's project. Don't. Figure out heat you want to get done and just try to understand a tiny corner of that codebase in isolation, then fix it. Keep doing that and you'll eventually have covered the whole codebase. It's a long journey going forwards, but you'll look back and it'll seem like time has blasted by. Having good mentors in your startup will make all the difference.
- naithemilkman 16y agoBingo. It's in a way risk mitigation as well plus I think it makes it easily to speak the same language as your future cofounder. Yeah, I'm starting off with bitesized problems. :)
- FiddlerClamp 16y agoDo you think it's possible to become a programmer at age 43? I've always loved computers and have written programs in BASIC, VB, WordBasic, and the like, but never got into C or OO programming. Would anyone hire a freshly-minted 43-year-old developer? Or is this a fool's errand?
- owyn 16y agoIt's never too late, but there is some age bias in hiring. You probably aren't going to work for a hot startup but there are plenty of interesting jobs, especially if you have some kind of domain specific knowledge that you can apply. My dad switched careers around 40 and went back to school and became a programmer until he retired in his 60's. He did a lot of payroll systems stuff. He worked for hospitals, insurance companies, manufacturing companies etc, starting out doing Cobol but kept up to date and in the end was doing .NET. In the beginning he took whatever job he could get and we moved around a lot, but it can be done. :)
- FiddlerClamp 16y agoThanks - I do have some domain knowledge. I don't have to work for a hot startup...I'd rather work for somewhere a tad more stable. :) Done the startup thing a few times as a writer.
- sayemm 16y agoI'm 25 years old and I'm pretty much doing the same thing. Taking time off to work on my programming chops instead of jumping into another idea again as the "business guy". It sure beats spending six-figures getting an MBA or going to grad school these days... and I'm learning a ton. I'm absolutely loving it. I learned Python first, then learned how to use linux and emacs, played with firefox add-ons to learn Javascript better, then started building web apps in PHP/MySQL, and now my plan is to spend my days learning and building stuff in Ruby and my nights working through these four books: http://stackoverflow.com/questions/414779/what-should-a-self-taught-programmer-with-no-degree-learn-read/4473810#4473810 http://stackoverflow.com/questions/414779/what-should-a-self... Best resource ever is from @yegg, I always check this for guidance before learning anything new: http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive http://www.gabrielweinberg.com/startupswiki/Ask_YC_Archive I've come a long way since I first set up my server on Slicehost. Good luck on your journey too.
- heed 16y ago25 here as well. Started with python, moved to Javascript (building chrome extensions), and currently have been getting into obj-c/iOS building iphone apps. I'm working full time right now, and find it a little difficult to progress because I'm so tired after after work. I'm really trying to push myself though. I want to move to webapps (django) at some point, but have to scratch a few itches on the iphone platform first.
- sayemm 16y agoNice, I'd love to get into iphone apps sometime later on too. Yeah, I bet it is tough with a full-time job, which is why I'm so glad I'm taking time off to really focus on this while I still can at this age. Keep it up!
- naithemilkman 16y agoThanks for the tips. Question: why are you hopping around different languages?
- 16y ago
- goblgobl 16y agoAny advice for a 24yr old trying to work in high performance computing? Decided about a year ago to switch careers, and I've been getting familiar w/ a few low level languages (C, C++, Java), and working my way through a few books like SICP, Cormen's and Skiena's algorithms books, Code Complete, etc. The OP seems to have landed an internship already, whereas I have been failing miserably at this. I've been cold emailing companies, applying for internships, etc. I've written a few basic beginner type programs, nothing large scale or real world yet. I have a ways to go, but it sure would be nice to have some sort of mentoring and/or get involved with real projects of some kind. I'm doing great self-teaching, but there's obviously value in working with more experienced developers. I know having code to show is important (github, opensource), but what else should I be doing to land that first software job?
- julsonl 16y agoWell if my experience is of any use... Keep at it! I didn't graduate from a top tier college or have been creating game engines since 9 years old, so I had to start at the ground floor like most people. It was extremely difficult at the beginning. From what I noticed, cold emailing rarely works. I had the most feedback/interviews/responses from either recruiters, networking and actually moving to tech hubs like Silicon Valley. From the code perspective, a lot of companies noticed my open source contributions. Granted they were mostly minor utility code, there's always that little spark of joy from their voices whenever we go over that topic. So go join an open source project! I know it's reiterated over and over again, but a good project can act as proxy real-world experience in helping you discover what it takes to write production quality code. I guess if there was a single tip I could give, just be highly visible in committed code, web presence (as a programmer, not as a party animal) in websites and social networks, and face-to-face networking. That would raise your chances of being noticed.
- tom_b 16y agoHPC is a rather specific subset of the programming world. My experience is that a lot of pure HPC code is researchy/research lab driven. If you have an undergrad degree (of any type) already, you could look around for a MS program with an advisor who is doing HPC research. You have a shot at getting into a program which will probably require you to take or place out of undergrad coursework (SICP and CLR are probably going to make that workout just fine for you). If you want to go all self-schooled, maybe you could pick up one of the new CUDA books and do some decent re-implementations of hard HPC stuff for that environment. Side projects like that would make me look at a resume twice if I had a need for a HPC hacker . . .
- keeptrying 16y agoI saw a another post just like this on Quora. I wonder if its part of a larger trend?
- naithemilkman 16y agoI have definitely seen a few other guys on HN posting about this as well. I think one of the commenters in this thread is another such person.
- yaovi 16y agoI graduated from a college in Kenya with a Computer Science degree. I understand OOP and other programming concepts but I feel I do not know enough when compared to my friends in the United States or other European countries. In college we mostly coded basic applications in either Vb.Net or C#. I am trying to become a better hacker by learning JS, C and Python. I am however finding it difficult as I cannot find projects that have bugs small enough for me to fix. I will be glad if someone could point me in the right direction
- keeptrying 16y agoFirst just write some small little tool in python. I need a command line tool that will parse a website and write it out as a database record. eg: http://www.tourdust.com/products/844-atlas-mountain-sahara-desert-trek http://www.tourdust.com/products/844-atlas-mountain-sahara-d... I need to get that and write it to a database with its fields like description, photo, cost, number of people etc. Let me know if your interested. In return I can answer guide you becoming a better hacker ie, what you should read, questions on C,Python etc ... But one warning - in the end its just about sitting in front a computer building something till its done. :)
- kai-zer 16y agoSign of a top in the bubble? I am considering the jump as well (from i-banking), and have been putting in a considerable amount of work, but part of me is worried the growth we have seen will come crashing down soon and opportunities will disappear. It is hard to give up a nice salary and job security, especially when a similar position is very difficult to return to if things don't work.
- dgallagher 16y agoI started learning how to code at 27 and am 29 now, still going strong. Frankly I wanted to do a web-startup, but realized that unless you can code, you're nerfed. Learning how to code completely free's you from being permanently stuck in "idea mode". The exception to that is if you have a lot of cash, and are willing to hire someone to build something for you. That's very expensive of course, since you're competing with companies offering them $80k - $150k+ /yr. jobs plus benefits. You can find cheaper labor, but you'll get what you pay for. Have lots of fun learning! Programming can be extremely rewarding! :)
- trafficlight 16y agoEven if you are hiring a programmer, it's still helpful to know how to code. You will be able explain your ideas and discuss the project intelligently.
- drivingmenuts 16y agoYou don't have to know how to code to hire a programmer, but being able to explain your idea clearly is very important. Where it does help to know code is when you need to understand the programmer. If he or she can communicate clearly, then hang onto that person by any means necessary. Within the law. No need to get all Buffalo Bill on him or her.
- danenania 16y agoAnd most importantly, determine whether a potential hire has any clue to begin with. Without some knowledge of your own, it's a roll of the dice.
- calvinfroedge 16y agoI really like the idea of looking for someone to apprentice with. It's awesome that he found someone to take him in. "look to the master, follow the master, walk with the master, see through the master, become the master." I started coding HTML/CSS/Javascript when I was 15. When I was 18 I was working on a $14M project doing HTML & jQuery. 19 and 20 rolled around and I thought I was hot shit and could get away without knowing much about object oriented programming and database design. Boy, did experience beat me with a heavy stick. After blowing through a lot of money paying other people, and not being able to evaluate what they were doing, I started learning to program myself a little over a year ago (December 2009). It has been, by far, the best investment I've ever made. You HAVE to have mentors, though, bookwork and experience alone don't cut it. Some of my mentors, didn't do anything but talk to me - and ingrain in me the importance of fundamentals - and some basic vocabulary. Some stuff that didn't make sense when I heard it, but produced those "Aha" moments later. Other stuff, like the importance of pre-planning, prototyping, code readability, and NEVER using code you don't fully understand, I was told from the beginning were very important. Plus, mentors can be different types of people in different types of situations. One of my mentors was an experienced programmer who I lived with for a few months. Others were dudes on stackexchange and serverfault (Yes, that counts), and others were those I read. The bottom line is, you need to see yourself as an apprentice, always looking for a master to learn from.
- naithemilkman 16y agoI think that mindset just generally applies to everything in life. I've been greatly humbled by my personal experiences at my previous startup. I came away with one clear though: I know shit about what I thought I knew. Being in a room with smarter/wiser people than you can only make you move forwards. And do that enough, I hope to actually join the club someday. Heh. And yea, SO rocks but I think a lot of newbies are taking advantage of it and getting shot down advice to wannabe hackers: do your homework first or get flamed on SO!
- ChuckMcM 16y ago10,000 hours. From Outliers and others as the number of hours you have to do something to be proficient at it. The common thread for most hacker coder types is that they just really really liked the "power" associated with writing code that could do anything, and so they started spending all of their time writing code doing all sorts of things. All night debug sessions? Check. Several complete rewrites from scratch? Check. Using a language feature considered "unsafe" because it was the only way to get done what one needed? Check. Figuring out what "unsafe" meant? Check. Once people are writing all of this code many want to know exactly how their code gets translated into what the computer does and they go off into their 'compiler' stage (some stay there for ever :-). This is where folks write their own compilers, by first writing their own lexical analyzers, then needing to parse those, and then needing to take those parse trees and generate new code with them. There is a lot of exploration to do in 10,000 hrs. That's coding 6 hrs a day (and by that I mean coding, not checking Facebook or reading HN :-) for 5 years. There aren't a lot of short cuts. Sure there are CS programs which will show you what other people learned in their 10K hrs and help distill the concepts down for you but, like playing Piano, its not "known" until its in your finger bones. Mentors are great for helping you get unstuck (since being stuck means you aren't coding which means you're not clocking your 10K hrs) and they can sometimes give you a heads up on road your travelling down, but mostly I think they are best for just sharing your enthusiasm and adding energy.
- rokhayakebe 16y agoStarted 1 year ago, but more seriously last August and did a handful of projects from the ground up to learn. http://democratic.ly http://democratic.ly, http://contexium.com http://contexium.com. I think my most interesting work is an email based knowledge base app which I haven't released. I also did 2 other email based group communication applications. Overall I doubt I will ever be a programmer, but at least now when I think of an idea, I do not think "Who can build this? For how much?", i think "Do I like this idea enough to build a working prototype?". And the best part about being a newbie is not knowing your limitations.
- naithemilkman 16y agoThats exactly what I am aiming to achieve. Not CTO status but enough to hack out a prototype and THEN get a CTO to mend later on. But dare I say in most people's eyes (e.g mine), you're definitely a programmer.
- aridiculous 16y agoI'm taking a wild guess here, but I suspect there are many people who need that entry level/internship opportunity to cement some concepts while working on a team. The problem is, like the rest of America, junior positions seem to have vanished. At least on job boards and hiring pages. Can anyone point us to a good resource to find junior positions or even internships in front-end coding or UX design? I'm not asking for any company to completely teach me stuff. The ideal position would require a portfolio but maybe one that isn't completely cross-browser, production-quality code.
- guynamedloren 16y agoYou have a very good point. I've never realized it before, but now that I think about it, this is something that I see all the time - a complete and utter lack of entry level positions on job boards and hiring pages across the web. I wonder if there's an opportunity to be had here? There must certainly be a thriving untapped market of entry-level programmers who may be willing to take a pay cut to hone their skills for a year or two...
- z0r 16y agoBwahaha, there's a huge market of entry-level workers in all kinds of fields (software being just one of them) where people work essentially for free (unpaid internships or internships with a small stipend). It's kind of disgusting!
- Rariel 16y agoYeah the new entry level in law, government work and politics is "unpaid internship." I swear these people are taking huge advantage of the economy and the surplus of qualified workers.
- v21 16y agoAnd illegal in the UK. There's an ongoing campaign about these -some nice examples can be seen at http://fuckyeahfreeinterns.tumblr.com/ http://fuckyeahfreeinterns.tumblr.com/
- grammaton 16y agoI wish more people on the business end of things had realizations like this. Kudos to the author for being honest with himself, and being willing to do what it takes to address a short coming.
- seriesoftubes 16y agoIt doesn't matter how old you are-- you can be 5 years old or 48-- there is no denying that computer programming is good mental exercise, an amazing creative outlet, and (if you're any good) a skill that can make or break your career. I'm 23 and I never got any compsci/programming training in college. I'm now working part-time and learning programming (Java, .NET, SQL, web scripting) full-time. Why? 3 reasons. 1) I am sick and tired of not knowing how to create solutions that add real, measurable value to almost any human task imaginable. In 2 years, I'll be able to do so much more than I ever imagined in any office setting. 2) Good programmers have the job I dream of: being able to use their minds all day to create cool stuff that other people depend on. Top talent gets paid pretty well. 3) The big secret that no one tells you in college is that if you want any decent office job in which you'll be using your mind instead of bullshit "management" or "leadership" (i.e. wielding social prowess to get what you want) skills, you're going to be programming. Want to make a spreadsheet? Guess what, John Walkenbach, the maker of the Excel Bible, says that even if you're just making a basic spreadsheet, it helps to think about it as object-oriented programming. And he's right. Especially if you're a power user of Excel, Excel == Programming. Period. Same with just about any other MS Office program. The bottom line is that if you use a computer at work, like it or not, your freaking livelihood hinges on your ability to create and manage software and/or hardware. You might as well know what the hell you're doing.
- acconrad 16y agoNow we just need to turn 27 year old hackers into learning a bit of the business side (like myself).
- Rariel 16y agoYou can do that with a lot of reading I think...
- corruption 16y agoTheory != practical. It takes picking up the phone and face-to-face meetings in my experience.
- Rariel 16y agoI meant on the web, personal stories/advice/what-not-to-dos of entrepreneurs in the startup realm. I wasn't suggesting picking up a text book. My background isn't business per say, but I've learned a great deal by reading and researching. I also took several business related classes in law school so maybe that makes it easier for me to grasp.
- smarterchild 16y agoIs there anyone else looking for a programming apprenticeship? I'd like to offer one.