Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Ask YC: Any newbie coders?
36 points by willphipps on March 18, 2008 | hide | past | favorite | 30 comments
About a year ago I started reading PG's essays and one thing that stood out was him saying 'if you don't know to code, learn to'. Since then I have had my head immersed in html/css/php/msql and nearly have something that works, looks good but would have probably cost me upto $10,000 (give or take) to create.

I just saw another post by someone that made an elearning site who has only been learning to code for 9 months.

Are there any newbie coders here? if so, have you got an app. and what language did you learn in?

I struggled with Ruby to begin with so moved onto php and found it a much easier language to get going on. Some people said to start with Python, i'd be interested in what more experienced developers think are good languages to start off in, also any useful tips or resources for the newbie coder.

Cheerio.. Will



I'm 18 and have worked for three startups in the past and am currently the lead designer on two. I really don't mean to brag by this, it just leads to my next point. Also, this doesn't fully pertain to programming per say because I am a front end designer, but hopefully this comment helps :)

When I was younger, 14 or so, I really became fascinated with server technology, databases, the web, etc... I was just starting High School so I essentially had all the time in the world to dick around with linux and php and all of that jazz, and I did. I was REALLY frustrated until maybe 6 months ago with programming in general. I would try tutorials, and could follow along and do what was written, but it never made sense in my head.

I pretty much dismissed the concept of being a programmer and stuck to what I feel is my talent, front end design. I build blogs atop Wordpress, dabbled with PHP, but never really became a programmer.

In the summer of 2006 I joined my first startup and began working with a team of really, really talented and smart guys on a Django site. This is where I was first introduced to a real smart environment. I was in a place where I knew just enough to ask good questions to help me learn. It's now 2008 and although I am STILL not a programmer, haha, I feel I have a really good grasp on database modeling, basic functional programming, etc... I know PHP fairly well and am becoming familiar with Python because every major site I have built since that first startup in 06 has been Django :)

Anyways, moral of the story is, a few years ago I could have never even dreamed of being where I am today. In the world of front end design and back end programming. I went from looking up to designers like Bryan Veloso, Steve Smith, Dan Cederholm, to actually feeling like I can sit at their lunch table and talk the talk with them. I still admire those guys of course, but now I feel like I am closer to them.

So, my advice is to just dive into anything you can, just like you have. It really doesn't matter what language you learn first. Focus on learning the thought processes behind building something. You can write a book in spanish or english, the meaning will be the same. So focus on problem solving, finding solutions.

Also, surround yourself with smart people. Stay passionate. If you're passionate about becoming a programmer, you will, and you'll do it the right way. The best way to learn something, hands down, is to just do it. Don't try learning PHP through tutorials on how to make a shopping list, start learning PHP by building the webapp you want to build :)

This all kind of just spewed out of my mind, I hope it makes some sense :)


I've been coding for ages now, but I still feel like a beginner. There's always new stuff to learn. :)

I'd agree with this advice: be passionate about what you do and keep on building stuff, it's the best way to learn.. not only that, try to think about what you're doing and why. It's better (and more fun!) to actually understand how things work.

Learning from smart people is also a great way to learn.. it can be hard to find these people though. I'm tipping this is a good place to find smart/talented people. I think you're in the right place. :)


It does make sense, and I think it was a great read. You are obviously really getting somewhere.

This is the kind of comments that really make me feel good on behalf of other people.


i absolutely agree - building an app. i would want to use has made it a much more powerful learning exercise. i found the tizag.com tutorials also useful for the basics, but once i had completed them, it was much easier to envision how i could go on to create my app.


I want to echo what whalesalad said. Two main components of being a great (anything) are passion and and a mentor. Passion will push you and the mentor will guide you.

1. Find a language that you like 2. Think of a project that you find interesting/useful to you and write it 3. Have the mentor whack you over the head when you do it wrong.

Funny thing is I graduated a comp sci major without all 3 of these things. It's no wonder I avoided coding during college. I knew how to do it, but I didn't enjoy it (who enjoys making rolodexes?). I started coding again after college because my mentor challenged me with an product worth making.


I started coding around 9 months ago, so it might have been me blabbering on about that.

I did the html/css/php/msql with the addition of some javascript thing as well, primarily because it seemed like the easiest thing to do, and because I could get results fast. Which I did.

I find it to be great fun, particularly the fact that I now can mock-up whatever ideas I have without having to convince someone else that it is a great idea.

I'm currently doing an online project management tool, which I think will turn out pretty well. Particularly since I am normally a manager, so I know what functionality it needs. I've run into some database problem, which I have learned is called EAV (http://en.wikipedia.org/wiki/Entity-Attribute-Value_model) that I'm currently trying to solve. Not all that easy, but a great learning experience.


One PhD CS candidate (a friend of mine) once told me "It's all about controlling your frustration. Each day I come across at least half a dozen things that I don't know. I'm still learning". He later dropped out :) That said, as others have pointed out, it's all about passion, measuring progress and good execution. It won't happen overnight but some day it will.


I totally identify with this; I've been coding for over 10 years and the only thing that has been truly consistent about my experience has been that frustration with my inability to learn everything I want to learn. I have a stack of books to read that would probably be as tall as me, a gaggle of programming languages I want to learn, and 3-4 languages I want to be an expert in.

That doesn't include the math, Bible scriptures, Chinese, Gaelic, and carpentry I want to learn.

Persistence. What else is there, until the Matrix-style skull-jack gets implemented?


I have the same problem! How do you deal with it? Whenever I'm exposed to a new thing I want to learn, I ask if it's something I can and will apply relatively immediately, or something I'd learn only to incorporate it into my 'zombie plan' (or any other unlikely contingency). If it's for the far off future, I stick a pin in it and come back if the urge becomes more than a whim.

Also, I try to limit the time I spend ingesting info (discounting recreation) to about 20% of the time I spend creating.


I had this same problem for quite a while. I had force my mind to accept that I probably didn't pick up everything the first time around. I didn't let that stop me in my tracks. I simply went onto the next thing. Eventually, something would come up, usually a compiler error, that would force me to flip back to some section I have previously read. I would find out what was causing the error and fix it. I have stopped trying to learn it all, and instead I read once and then reread only what history has pointed out I failed to pick up on the first round.


Yeah, I'm new to web development and I'm 26... I started reading about php/mysql in January, and began developing my first application in February, and I'm about a month away from being able to launch it.

I didn't start from scratch though -- I knew visual basic for applications from my MS Excel jockey days, and took a couple of java courses in undergrad. Those give you the underpinnings behind programming logic, which extends to other languages pretty easily. Making my VB skills transfer into PHP and web development has been satisfying. It feels like I'm actually creating for the first time.

I had exposure to the 'online environment' at an internet startup for a year prior to this as well, which probably made the environment a little less mystifying.

One insight I'll give you is that I learned more in a week of sitting and coding than I did in the month of reading 3 hours a day. Try stuff out, test it, see what works and understand what your natural tendencies are and your common mistakes. Ask for help when you need it, but never avoid a sticking point, always push through.


I would consider myself to be relatively new to coding. I can read code in almost any programming language, however, I have never been involved in a large scale project. I just never could find the time to get involved with something that would take longer than a weekend to work on; that is my own fault. Now that I am unemployed (I resigned to move back to Ohio due to the cost of living in Rhode Island) and have no hope of finding a job in finance anytime soon due to the credit crunch, I have decided to pursue a second undergraduate degree. I will be working on a computer science degree at Bowling Green State University in Ohio. I hope to use my time there to get a team together for early 2010's YC.


I started coding a couple of years ago with Java for a desktop app. I really didn't know where to start, so I picked it because it was available. I dabbled in web stuff to have a web site (css, xhtml, php, a little mySQL), and now I am back to that as I need a much better website in order to start marketing.

I still feel like a newbie, though.


Many people will probably disagree with me on this, but I found Head Start Java to be a good introduction to Java. I picked it up when I wanted to learn the language. I started a program that focused on drilling a user in Jeopardy questions (I have a huge fascination with Jeopardy), but I didn't really like Swing, so I have added the project to my long list of things that I have started but never finished.


I started with Java Swing (O'Reilly) and Complete Reference (Schildt). It's funny--Java's tough, but I really didn't know the difference because I had no GUI language with which to compare. I had done a lot of (non-GUI) work in Mathematica (which I love), so I found Java cumbersome, but I also was interested by the story of the development of OOP and I figured it was worthwhile to learn.

Now I've found Python, which has a lot of the characteristics of Mathematica, and is very fun. But I have to fix my Java printing issues before I can play with it. (If I can figure out how to deploy it as a GUI desktop app I could better justify spending more time with it).


Although I've been coding for a few years, I've always been sort of a newbie because I haven't really worked on one particular platform or technology over a long period of time. I have just picked up stuff by building things.

I built this site more than four years ago - http://stp.unipune.ernet.in/zsi/ (I also did the backend data entry pages, which are not online).

When I took up the project, all I knew was HTML. I learnt to implement LAMP from scratch on the job.

I deliberately put myself in a situation where I had no choice but to learn, the same way people really learn to swim - by diving in at the deep end.

I'm pleased to see that the website is still up and running.

I haven't quite kept up with the latest web development technologies or languages, mainly because I haven't got down to building anything fun for a while. I'm itching to start doing something again and when I do, I guess I'll pick up something new.

What project are you working on? If you are looking for someone to work with, I'd be interested (I'm based in the UK too).


there's a lot to be said for jumping in at the deep end - especially if you have some friends that can help you when you reach a mind block or dead end.

as for my project, it's very early days, i'll let you know when i have something more substantial to show you..


fair enough. good luck with it.


I started programming in Java almost 2 years ago, so I'm still very new to everything. I hardly ever write anything in Java now though, I have to use C and C++ in school, but for a quick project my first choice is usually Python, and lately I've been playing with Scheme.

Something I liked doing when I was first starting is to check out the source to some open source tool I was using, or just to some random project I was interested in. I used to be amazed when I would look at some piece of real code and think, hey, there actually isn't some magic quality to it that makes it so much different than something I could write!


What's a good resource for best practices or for tutorials to develop programs the correct/proper way, so I don't have to waste time going down bad paths and making the same mistakes others already have made? While trying to develop applications, I feel like I'm figuring out stuff that's already out there and sometimes have to backtrack because of something I didn't think about. Someone may say there is no one proper way and many ways to do something, but I want to know the many proper ways and not do the many wrong ways.


I learned C as my first language, then only much later on moved on to functional languages. Don't get stuck in PHP-think mentality, and definitely make sure to understand the things about Python or Ruby that make them functional ASAP.

Learning to understand macros in Lisp also really helps you think better, that's what people keep repeating. From what I understand, it blurs the line between that interface of the language to the compiler/interpreter, which seems cool.

I'm definitely a newbies still (in all Lisp, Python, Ruby).


I'm one of those dime-a-dozen arty "ideas" guys who can design cool looking stuff but can't code himself out of a paper (or plastic?) bag. Recently I've taken up learning html/css/php an man does it make my head hurt. Absolutely love learning new things though so I think it is really good. Basically the way look at it is that I may never be good at programming but I had better be able to sit down with programmers and at least have SOME idea what the hell they are talking about.


I asked a freelancer friend of mine a few months ago: "If I want to work for myself, what language would I learn to reach that point in the quickest fashion?" He told me to learn JavaScript/Ajax. Of course I see now that nothing is so simple... I've had to catch up on how to utilize other tools I'd rarely touched before (like CSS), and I feel compelled to learn PHP, MySQL, etc at the same time. So while I was hoping to reach some level of employable proficiency by summer, it's looking more like it'll be the end of the year.

I'm at work so I don't have time to read the other comments, but I'm sure someone's mentioned SICP and various videocasts, and yeah Python is supposed to be a good learning language. I've heard starting with JS might not be so great b/c of its idiosyncracies. No, still working on apps/sites, nothing finished.


I have been programming for almost years and I think I'm close to getting the hang of it. http://norvig.com/21-days.html


1) Take your time and don't comapre yourself to anyone else. You are never too old or too late as long as you enjoy yourself

2) Since you are self educating, pick tools that are beside being useful are also challenging. By challenging I mean complicated and non trivial, this should intrigue you better and help keep motivated, and by useful I mean popular large nice community, lots of extension etc ...

3) Code!


Well I am pretty fresh i've stuck to LAMP just like you. Its a good base. I built some of this, though had some help from a friend.

www.scribblesheet.co.uk


definitely help from friends cannot be underestimated!


I’m very raw. The necessity of making a living in my non-hacker field of training slows down the learning process, too. That’s why I’m taking the summer off and then going to grad school in CS. Between the two, I should be an uber-hacker in three years and I’ll be building stuff the whole way.


Find a place to work under "masters" who know their stuff. Surroundings/teams help you grow and develop your abilities. It's not a talent. It's a learned talent! Code on.


I am




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

Search: