

Ideas For Beginning Web Developers - excid3
http://excid3.com/blog/10-ideas-for-beginner-web-developers/

======
MJR
_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!

~~~
cantbecool
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.

~~~
avstraliitski
+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.

------
pfarrell
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.

~~~
Sapient
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.

------
tete
(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.

~~~
avstraliitski
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!

~~~
tete
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!

------
tmlee
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..

------
cmelbye
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).

------
oflannabhra
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.

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

------
avstraliitski
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.

~~~
excid3
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.

