Hacker News new | past | comments | ask | show | jobs | submit login
Ideas For Beginning Web Developers (excid3.com)
99 points by excid3 on July 13, 2011 | hide | past | favorite | 20 comments



Don’t spend much time building any of these projects. Get the to minimum list of requirements you’d like each site to have and move onto the next one. Do them over the weekend and don’t let them stagnate for too long.

I would revise this: Spend as much time as you want. If you get interested in something - keep going. Don't force yourself to keep moving according to this arbitrary list. Go where your interest takes you. JUST. KEEP. GOING!


I one-hundred percent agree with your comment. It's all about the learning process and what makes you curious to learning something more on a topic. Doing forced projects is a quick way to burn yourself out if you are not completely interested.


+1! The only IT people worth their salt are those who have natural curiosity. Without it, you cannot sustain learning as technology evolves and the industry changes, and your skills will become irrelevant. Incidentally, this is probably why a lot of formally trained CS / software engineering grads actually suck. They never put 2+2 together for themselves, out of interest, in their own time, for fun.


Nice list. Along the lines of post yesterday, I'd encourage the developer to use an IDE and gems as little as possible in order to truly get what's going on under the covers. Also, the moving on is an excellent point. I've recently started an app-a-month goal for myself (I'm married with 2 kids) in order to keep myself shipping. I don't know how many times I've rewritten my mp3 site since 2002 :)

Here's one more comment.

11. Add Unit tests to anything you've developed that you want to keep developing.


I would agree with your IDE point, IF the person doesn't know how to use the IDE properly.

I used RubyMine when learning Ruby/Rails, after having used IDEA for years (Java), and the two things which helped me learn Ruby and Rails faster than anything else were code completion (for finding methods which I may have not found otherwise) and the Source Navigator (for want of a better term). Being able to Ctrl-Click on a method and instantly see the source for it(Whether in a gem or in Rails itself) was a massive time-saver when it came to understanding what was going on under the covers.

Edit: Agree 100% with adding tests.


Two excellent points that I forgot to cover.


(slightly off-topic) Just out of curiosity. Is there a web framework in any language that can compete with Perl's Mojolicious? http://mojolicio.us/

I know Mojo offer more but I would like to know whether there is another language with a framework where you have a complete box that is easy to deploy on any platform, comes with built in templates, comes with tools for testing, the ability to seamlessly grow Sinatra-style application into well structured Rail like stuff, a good plugin interface, a WWW library to directly get JSON or DOM elements from a remote location in one command, logs, interfaces for cgi, fastcgi, etc., production and development server with helpful exception handling inside the browser.

I know you can have all of this when you use libraries, but it makes applications harder to deploy and maintain. Besides that it's way easier to write and read stuff when it's an all in one solution. I looked for something like that in Node.js and Ruby, but couldn't find anything.


In Ruby there is Sinatra: http://sinatrarb.com


But Sinatra is more like just the Mojolicious::Lite part with tests and plugins.


Are there anny similar projects for Python out there?


Honestly, I've coded loads in perl, and I think the language has a great place in the Unix user's toolkit. I certainly use it for small scripts all the time. However, the 10,000th time I had to type 'man perldsc' because of the ugly hack that perl data structures and their syntax represent ("Access and printing of HoHoAoHoHoAoA", anyone?), I swore never to use it for complex projects. I learned PHP, and never looked back. Do yourself a favour and learn Ruby, Python or PHP. Don't use perl for complex web projects - it's simply not the problem domain it was designed for, and it shows. I mean, look at the code example on that framework's page: "my $self = shift;" .. who can be bothered with such cruft in 2011? Get with the program!


Uhm, sorry but that's nonsense. I know PHP and Ruby. The latter one very well. While Ruby is a great language I prefer Perl in most situations. While I consider both of them to be very good the primary reasons for choosing Perl are CPAN and the fact that it is older and therefor they already "fixed" a lot of shortcomings that other scripting languages have.

And yes, I know the benefits of Ruby's OO. I have used Smalltalk, so please don't tell me all the wonderful things you can do. I know them. But using Perl is like using a lot of experience for practical stuff. That's Perl's strength. There is a lot of knowledge in it and it's designed for practical stuff, the real world and not to look good or to be easy to learn. I still recommend Ruby to people who ask me about programming. Simply because it's better to understand a lot of things and I think it's easier if you start out with a programming language like Ruby. But staying with one language is just stupid. You will have a lot experience with a particular, but knowing different approaches to solve problems is even better.

Then there is this TIMTOWTDI dogma it that receives a lot of criticism, but I think it what keeps Perl alive. It makes it very flexible so you can use it like a completely different language. One can use it for small scripts or one-liners and huge applications. Also it's not true that there are no start up. DuckDuckGo is maybe the most popular example.

But this doesn't mean you should all use Perl. People do things in different ways and they think in different ways. It's not about choosing one single language that receives a lot of hype. Just learn and what's more important understand them. And with understanding I mean the philosophy. A lot of C people for example use Perl like it would be C and then say it's bad because it's like C and slower. GitHub is a nice way to find out how people are using a language and receive some inspiration. It's like everyone should at least try Small Talk and a language like LISP or Haskell. And everyone should learn what Assembly is all about. It will make you a better programmer no matter what language you'll be loosing in the end.

Oh, sorry. This is so off topic. I just wanted to know what stuff I might have missed, because it's really been a while since I had a look on other languages. Sorry!


it's simply not the problem domain it was designed for, and it shows

Ah yes, the "single purpose tool by design" fallacy. PHP wasn't designed for Ajax or JSON or HTML 5. Perl wasn't designed for the web.

Install a library. It's a general purpose programming language designed for you to use libraries.


I just wanted to say you might be hellbanned, it seems all your recent posts (after this one) are dead.


I agree. Reading books and materials can only take you so far. In my experience, after reading an iOS dev book for countless time, you think you get it, but after a few weeks.. you tend to forget all about them. Eventually, i decided on a project to work on, and when i get stuck, refer to the book and continue working on it until it is done. I think the concept sticks better that way, plus you get a sense of satisfaction of a finished product..


A wiki is a simple idea that beginning web developers can get started with. http://riki.heroku.com/ was one of the first web applications I wrote a few years ago (using Rails 2.1.0).


As someone looking for some direction on starting Rails development, I'd just like to post a "Thanks", both for the list and the motivation.


Good article. Now, I begin to build a todo web service.


I disagree strongly with the article's premise. Don't take a job where a language and framework has been chosen that you don't know, where you are still at the point where building basic websites is a 'project'. Why not? Because obviously the company you are working for has no idea what they are doing with their time and money, and you're therefore unlikely to be in an environment with skilled coworkers.

If you are really a beginning web developer, read the HTTP RFC. Learn HTML. Learn Javascript. Learn CSS. Learn basic Unix. Pick one simple project and implement it in three different languages. Then implement it with three different database layers. Then implement it with three different web servers. Then implement it on three different operating systems or at least Linux distributions.

Now try to benchmark and scale. Compare multiple front end load balancers. Compare various NoSQL database architectures and caching solutions. Try some cloud hosting, see where it falls down.

This will teach you far more than fiddling in one framework.


I agree if you're doing this fulltime. My job was a part time Rails job for a professor. There are lots of opportunities out there that you can do on nights and weekends if you have another fulltime job. It's a whole different situation than what you're talking about.




Consider applying for YC's Fall 2025 batch! Applications are open till Aug 4

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

Search: