Hacker News new | ask | show | jobs
Ask HN: I'm a young developer. What should I do next?
18 points by hellisonwright 4714 days ago
I have been programming for almost 5 years. In this period I have learnt Python/Django, HTML/CSS/JS and have just started learning Node.js/Meteor as part of Stanford's Startup Engineering Course. During this time I have developed several non-trivial MVC web apps (mostly side projects) and taken many Coursera/Udacity programming courses. I also have a web design business although I am currently struggling to find clients who are not affected by my age.

Frankly, I feel lost in this world of technology and startups. I assumed that the more I knew, the easier it would become, but experience has proved that this isn't the case. I feel I need guidance in order to gain any traction/reputation in a particular field. It would be greatly appreciated if I could have some suggestions as to which direction I should take next.

Many thanks in advance. I have been following HN for almost half a year now and the community here is one of the strongest I have ever seen.

EDIT: Thanks everyone! The feedback has been incredibly helpful and I will take a look at the resources you have commented soon. Also, if you have anything else you want to add more personally, send me an email at: harry01a (at) gmail (dot) com

22 comments

You are very young and obviously talented so I'll suggest you something completely different: Don't burden yourself with web business yet. Forget startups, companies, investors, clients, etc... you honestly don't need that yet. Go instead and do everything that "adults" can't afford the time for: build your own stuff just to see if you can, learn more about things that you love, join some open-source projects that you find interesting, follow your passions and meet people with similar interests. That way you'll build both your skills and reputation...and don't worry, the money and business opportunities will follow, they always do... so take your time and try to enjoy your youth as much as you can. You will be an adult for the rest of your life, but being a smart kid is something that lasts only a few years, so make sure to use them fully...
I started playing electric bass at the age of 15, and got an acoustic guitar about 6 months later. I decided to major in music in college since that was literally the only thing I ever felt like spending my time on (excluding girls, since you can't major in that). I picked the bass as a primary instrument and for the next 12 years never had a "real job". Traveled the world, met tons of interesting people, got treated like a rock star, got really good at the bass, gained a ton of "domain expertise" in the music business, and generally had a whole heck of a lot of fun. I didn't even think to start programming until I was 30.

There is an entire world out there, and you likely have a whole lot of other talents that you don't even know about yet. My advice would be to make sure you take time to discover them too.

Yes, I do quite a lot of music as well. (I play the cello / electric cello!)
You probably should not really use your full name and age in most cases on the internet. It's weird out there and people may wish to do you harm. At the very least, it's better to keep your digital history out of the public eye (for google has indexed this page already and will never forget) -- at least until you're ready.

As for finding clients put off by your age, one possible way is to enlist the aid of an older person to do talking? I knew someone in high school that did that when he ran a training service. Also, don't mention your age.

People are always telling me to find a problem and solve it; get to know some group of people. If I only knew a group of people, heh. Or people.

If it makes you feel any better, I'm much older than you and have been doing programming 'professionally' for several years, like, as a career an' everything, and I feel just as lost as you. 'Cept now I'm old, embittered, and am looking for ways to just not work, take a break and go back to doing things rather than spending time at work.

As I have said in another comment, I normally meet my clients personally and so they normally do know my age/name. It would be fantastic if you could point me in the direction of someone who could help me with this.
> It would be fantastic if you could point me in the direction of someone who could help me with this.

Those guys I mentioned from my high school used their dad.

And some of my earlier comments about age and name were more about how you posted your age and name here, originally, without hesitation or prompting. Be careful about doing stuff like that.

Good luck. You've got your shit together more than I did when I was 14, and, arguably now.
Update: I've edited my name out of the submission text
you've gotten good feedback on your site? Maybe you should do the same for your website URL.
Done
Holy smokes. You're 14. Forget about "web design" and having a business. This isn't 2005. Don't set the bar for yourself so low. Aim high. You are the next generation in the greatest technological advance in the history of human kind. Do something hard. Find a language with a type system. Implement something meaningful in it. Russell and Norvig's "Artifical Intelligence" is full of great, inspirational stuff.
Thanks for the ambitious words ;) I'll see what I can do!
The case study really isn't compelling at all, it just doesn't look like a good site.

I doubt people will care much about your age and or just don't mention it.

Side note - "Design" is becoming more and more obsolete as the use of design frameworks becomes more ubiquitous. I started out doing design from scratch but now I just search for the best framework to use and cut my development time into a fraction.

Check out Twitter Bootstrap and Foundation (Zurb)

I mentioned my age simply to help people understand my position. I generally find clients by meeting them personally so they do normally know my age.

I understand my design isn't great and I will try to focus on my development work. I have used both those design frameworks in the past.

> "Design" is becoming more and more obsolete as the use of design frameworks becomes more ubiquitous.

That's visual design you're thinking about. Real design is hard because real design is UX design. It means solving problems. It requires empathy. I suggest googling terms like "information architecture", "content strategy", "affordance" etc.

I assume you did all the work on the case study. Is that correct? Have you ever heard of PageSpeed? If you want to develop better webpages / apps, a good way to work on those skills is to try to get the best score possible in plugins like Pagespeed and YSlow. It will help you learn about different things such as minifying, concatenation and caching.

At least in the Case Study homepage, there is a lot of commented out markup in the source, and an entire section where it looks like it was done in an HTML generator - because you are not using the Cascade at all, and every link re declares the same font-family over and over.

Something else you should consider is looking into this course: http://discover-devtools.codeschool.com/

It will help you understand what is going on when debugging webpages.

I know it's hard to be doing stuff that likely few people your age can relate to. Adults will dismiss you because of your age, and there isn't much you can do about it aside from continue to develop your skills so when you are taken seriously, they feel stupid for doubting you.

I developed that case study for a client when I was 12 and so many of the techniques used were very immature. The site was done in the Joomla CMS.

Also, I have already taken the dev-tools course and it was very useful.

In that case, you should be reviewing whatever case study you feature on a periodic basis to make sure it's reflective of your current skill level.

Depending on how much time you sink into learning, you can progress at a very high rate. You want people to make the most informed decision possible when hiring you, so you want to be showing them the thing most likely to wow them.

Keep in mind that some companies with an IT Department may still outsource smaller projects to freelancers. In this case, your development practices may be evaluated by IT minded folks. You really do not want to lose out at a job because you are showing code 4 years old, and that's not even how you'd go about it if you were to start over.

Another poster did say something about traffic increase. But let's extend that. If you can prove that you not only redid the design, but you increased performance by X%, and traffic by Y% and so on, those are real numbers people who make decisions can base you on. So it may be worth your while to learn about metrics.

In School, I would really look into a course on statistics. You'd be surprised how often that comes in handy.

Like others said your case study is not bad but its not amazing. Realize that is OK and expected. Web design doesn't come to people overnight. Keep working at it. As for feeling lost, again it's to be expected. There's a lot out there. If your serious about programming , learn another language like Java or C#, then move to something like C++ or C. This will expose you to other languages and a different design flow from something like python or javascript. You can also read some books on program designs, data structures, and algorithms. A great place to start would be Code Complete. There's a lot out there to learn. Take your time and absorb it. Most of all, HAVE FUN DOING IT. Your fourteen, this should be a fun hobby for you. Computers are complex machines that are a lot of fun to play with. If you get frustrated put whatever your doing down and go do something for a while. Always happy to help out, let me know if you have any other questions or if I didn't answer your first one well
This is really helpful feedback, thank you very much.
I'd encourage you to think bigger than just tinkering with the next big framework as some are suggesting, whether that be a UI kit or Node or whatever. Instead try to understand why and how they work, and just keep programming. Focus on principles and languages over frameworks and toolkits.

Find an area of technology that you do care about. There are SO many areas to explore, and this is a great time of life to poke into them-- computer security, artificial intelligence, graphics, operating systems. Have you banged your head on a segfault in C? Can you explain HTTP? It is mind boggling how much is out there, but deep familiarity will make you a great engineer.

If it's design you're interested in, practice. Copy, "steal", and iterate.

I don't know your situation or how far along you are, but this is an amazing time to be learning. Do a breadth first search on technology--learn a little bit about a lot, and then dig into whatever piques your interest.

Thanks for this advice. It's probably the best I've seen in these comments.
I'd suggest you to jump into Mobile boat. Since you already know HTML/CSS and JS, develop a simple application using Phonegap and sent it to Google Play and AppStore. I'd also try to make my website look more like my Curriculum(without removing the freelance stuff).
Time will bring all the answers you need, but the harder you will try to get those answers, the faster they will escape you.

Continue to play with technology as you like. You seem to already know a lot for someone of your age. Perhaps you will tire of it at some point. Perhaps not.

Accept the mystery of life.

I mean, design isn't development, it is so much more fickle than just programming or developing something. Companies hire designers because they have experience solving problems and can translate what the client is saying into a solution. I'm not saying you can't do this at 14 but yea, it's going to be hard.

Your best bet is to try and make a product that people will use and throw it on the various app stores, it doesn't matter who makes those as long as they are great. Once you make things go to meetups and do a show and tell, but don't let being 14 become your identity. If you just continue making things, everything else will fall into place.

I do understand the difference between design and development and I would be the first to admit that design isn't my strongest point. Thanks for the feedback.
The site looks good. Nice and clean, as well as intuitive.

What you've sort of got to do is wait for an idea to come along. It might take a long time, but it's worth waiting. Otherwise, reach out to other people interested in startups in your area. Get involved and see who you can meet. Some one might want to get you in on something they're working on. I've had this happen before, though I have declined such requests as I am working on my own projects.

I'm sixteen (so two years younger than you) and age hasn't been an issue yet, apart from when dealing with laws regarding banks and business. No doubters and no haters so far.

It depends on your goals.

If you want to stick with startup stuff it seems like other successful young people go heavy into the programming side (the Stripe guy) or the design side (Mike Matas) or the PR side (the Summly guy). I think the main thing is to go more hardcore into one aspect of the business. I have a friend who got into web consulting very young and he's still doing almost the exact same thing now that he's old. You don't "level up" by default.

Personally, if I were to do it over again I'd choose design as you can meet more women that way.

I recommend not mentioning your age to your clients until necessary. At least that's what I did. As timmm said, your case study isn't very compelling. If I were you, I'd try to build up a Github with some open source stuff and get more involved in the developer community. Clients will eventually come looking for you.

By the way, shoot me an email at zchlatta (at) gmail.com. I'm currently 15 and am always looking for other young developers to chat with. I'd be more than happy to talk to you about technology and other interesting pursuits.

I agree that rather than looking for work as a web developer, you might focus on building really useful components and libraries on GitHub, or just staring by forking projects there and making improvements or fixes.

I understand your desire to get paid work, but really building your skills and making things that people find useful is a great proving ground.

Thanks for the advice, I agree the case study isn't a great example and I will change it soon.
Socialize and extend your knowledge beyond the computer science. Software development is not about solving complex math or algorithmic problems, it's about doing good for the people. In most cases, it's about doing that in a team. You have to understand people's needs and behavior, to communicate well and to propose the solutions that, sometimes, cross the CS boundaries. Physics, genetics, geography, history - this is an incomplete list of disciplines that helped me in my career.

P.S. try Java. It's still damn good for web development.

Thanks for your advice, I agree completely that it's important to look cross-discipline. Also, I find that generally Java for web development has a pretty bad image here on HN but maybe I'll take a look.
I started a free software project at 12 and then got involved with startup at age 15 while still studying. I decided not to go to university and now I'm working full time on my startup. The only thing I regret is not having left school when I was clear what I was doing with my life. I wasted 2 years of my life in school while I could perfectly work full time on my projects.

Shoot me an email to me (AT) luisivan (DOT) net, I have an event to suggest you attending this September in London.

Have you considered applying for a summer work placement at a startup? Might be a good way to get a better insight into the industry and network with some other developers.

(I am a developer at a digital publishing startup in Shoreditch - working mostly with Node.js - and we regularly take on short-term placements in our production and development teams. Do you have any code samples - Github account, maybe? Shoot me an email if you're interested - gary [at] getcontentment [dot] com)

I would love to get an internship somewhere but I'm not sure I know the right people to find one that will accept me.

I don't normally upload my projects to Github as I'm never quite happy with them...

I agree with timmm, the case study isn't compelling for me. I like the way the logo moves from the red to the white. Not a huge fan of centered text. How good are you at javascript? I might hire you for some freelance work if you know how to work with the prototype object.
I know the basics of JS but have never done a serious project with it. The advice was really helpful by the way.
Erm, so can you legally be employed (even self-employed) in the UK at 14?
Yes, you just can't work full-time. For certain professions, you can earn money at any age.
> you just can't work full-time

In the US, sans certain specified professions, federal and most state laws effectively exempt properly self-employed children or children working in their parents' business from most restrictions. Do such exemptions exist in the UK?

No, I don't think so. The basic rule is you can work part-time from 13, and then full-time from 16 (soon to be 18 - basically, the minimum school age). It doesn't matter what the form of employment is, they're generic rules, and largely about ensuring children attend school.
I started programming around a time similar to you, and I also faced many of your challenges. I know this may not be the general opinion, but my opinion is to not worry about starting a web design business. This is a super competitive field, and your age WILL hurt you when it comes to finding clients.

That being said, I started working for a web development firm at age 15. I didn't have a portfolio and I didn't have an impressive interview; I simply knew the right people and was in the right place. I lucked into a great job. I was able to work after school and on weekends, and I'm still employed at this firm. Working for a firm allowed me to mask my age. I wasn't a person; I was a member of a team. I produced the results expected of that team, and clients never once asked my age. I'd continue networking with people and being active in the community. Eventually, you will find the right opportunity -- sometimes it just takes time. Connections will be your biggest asset as this age. See if you have any family friends who own businesses who might need a website.

I never viewed web development as a career, but rather as a job. My passion is computer science, and by working in web development for several years before going to college, I've had the opportunity to gain communication skills and work skills. I am currently studying computer science, and I love what I'm doing. I feel if I was focusing on both computer science and web design, I would be spreading myself too thin. I'd suggest picking a field of focus, and going full throttle.

I'd suggest spending more time learning and less time trying to start a business, especially if you're facing resistance with the business. Running a business is a huge time investment (if you do it right), and this time might better be spent learning at your age. You have the blessing of being at an age with minimal obligations. You should use your free time to learn everything you can. Watch TED talks, read Wikipedia, take online courses, etc. This will broaden your horizons and perhaps open doors for you.

Finally, I'd suggest changing your personal website -- both design and content. I'm not accusing you of copying (and I'm not sure who did it first), but your website looks like a direct copy of Macaw's sneak peek website -- http://macaw.co/peek/sample. While a fraction of the design community might be the only people who recognize this, it still might give people the wrong idea. Considering you want to be a web designer and a website nearly identical to this was made in a matter of minutes as a demo, you might want to show something unique and reflective of your skills (your case study and your personal site do not look like they came from the same person). For your case study, I'd suggest explaining why having a site helped this client. Did he go from 0 traffic to 100 unique daily views? Did he go from 100 unique daily views to 1,000 unique daily views? Businesses and clients want to see results.

If you have any questions on web design/development at a young age, feel free to respond to this comment and I'll do my best to answer.

1) Startups/business. If you haven't, I would read all of Paul Grahams essays. I think startups are a great option (http://www.collegeanswerz.com/risks-and-rewards-of-startups), but even if you don't end up starting one, you should understand the business. I would also highly recommend reading Rework.

2) Your site. The top part (good design is good business) and the footer (contact me) are solid, but the rest could use a lot of work. The periods in the 'Hi there' paragraph are on the next line. Could just be my browser, but something you should look into. That paragraph definitely should be "nicer". Maybe something like this: http://twitter.github.io/bootstrap/2.3.2/examples/carousel.h.... The design of the case study is solid.

The main problem with your site I think is the lack of information. Tell us more about yourself. What you do? What are your aspirations? Hobbies? Thoughts/opinions? Show us that you know design and programming by telling us your philosophies. Also, have a blog (http://nathanmarz.com/blog/break-into-silicon-valley-with-a-...).

3) Design resources. I'm new to programming and design too (~ 1 year of on and off experience), but there are some resources that have helped me a lot. - Definitely learn bootstrap (http://twitter.github.io/bootstrap/index.html). - Best resource on typography (http://practicaltypography.com/) - Best resource on color (https://www.helpscout.net/blog/psychology-of-color/) - Amazing (http://worrydream.com/#!/MagicInk) - Fundamental concepts - http://37signals.com/svn/archives2/it_just_doesnt_matter.php & http://justinjackson.ca/words.html - Adjacent in space vs. stacked in time - http://37signals.com/svn/posts/1128-learning-from-bad-ui - solid resource - http://startupsthisishowdesignworks.com/

I think design is partly about understanding this stuff, which well help you develop "empathy for the consumer". But it's also partly about having "internal templates" that you can work with. I noticed that to start, I didn't have many inner templates, and my "tools" were limited. But after looking around and noticing some more things and stuff, I've expanded my inner templates, and my site reflects that (http://www.collegeanswerz.com/).

Take a look at my essay/gathered content (http://www.collegeanswerz.com/essays/) for more info on design, startups, business, and other things you might be interested in.

I love the initiative, discipline and motivation you have as a 14 year old. Let me know if you have any other questions or anything, I'd love to help: arz21@pitt.edu. Good luck!

I'd advise against a carousel. I don't have sources, but I've read that something like 90% of viewers never make it past the first slide of a carousel. They just aren't good UI. ++ for all your other links though.
Wow! Thanks, this is a really useful list of resources.
Yeah, thanks. Lots of time reading and bookmarking stuff on Hacker News. Sometimes you come across truly fantastic stuff.
> "What should I do next?"

Become an enlightened developer by learning a functional programming language.

I've had a brief look at functional programming style before but it never stuck. Which language would you recommend to someone of my skill level?
http://en.wikipedia.org/wiki/DrRacket - DrRacket is a Scheme (LISP) implementation.

http://racket-lang.org/

http://www.ccs.neu.edu/home/matthias/HtDP2e/part_one.html - here is a good book about how to design functional programs using DrRacket.

https://www.coursera.org/course/programdesign - here is a course on Coursera that uses DrRacket and the above as a textbook.

I was going to recommend FP as well.

The Little Schemer is (in my opinion) the single best book on programming out there. It won't directly improve your MVC webapps or teach you enough of Scheme to write real software; be warned. What it will do is give you a fantastic introduction to recursive computation and all the mind-expanding ideas that go along with it. It's also great fun to read -- how many books do you have with space reserved for jelly stains?

Also worth looking into is Learn You a Haskell, which is available for free online. Haskell teaches you to have some discipline in code organization, in a way enforced by the compiler, and will also help you to find more abstract patterns in your code.

Finally, Clojure is a functional language that has somewhat more of an emphasis on practical programming than the above books. There are some good libraries for web development such as Ring and Enlive; I'd recommend rewriting an app you've already completed in another language as a good way to learn. That way, you can concentrate on the language and the way you express concepts, rather than the particulars of the problem you're solving.

The Little Schemer is not the single best book on programming out there and I did not find it "fun to read."
Well, to each their own.