Ask YC: Any newbie coders?
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
30 comments
[ 3.3 ms ] story [ 51.2 ms ] threadwww.scribblesheet.co.uk
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.
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 :)
This is the kind of comments that really make me feel good on behalf of other people.
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. :)
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 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).
as for my project, it's very early days, i'll let you know when i have something more substantial to show you..
I still feel like a newbie, though.
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).
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!
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?
Also, I try to limit the time I spend ingesting info (discounting recreation) to about 20% of the time I spend creating.
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 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'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.
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!