

Ask HN: How do I achieve "full stack" - ishbits

I'd like to complete my skills to be able to bill myself as a full stack programmer.  I believe I'm close, but I am missing the front-end.  I've written many a RESTful web service, but primarily as an API or debugging interface to our gear which is primarily installed in large carrier or enterprise networks.  Not public facing, so pretty has never been an issue.<p>So given I can do the server side of web, in Java, Python or even C - which skills should I work on to flesh out my front end skills?  Do I need to have the ability to make things pretty?  Or is just functional good enough - and then a designer can take over from there..<p>Any suggested frontend frameworks, libraries?  I don't want to jump from one cool library to the other.  I prefer to pick a framework or library and stick with it - learning it more or less inside out.<p>Thanks for any input.<p>As for background..  I'm a seasoned C programmer, lots of system programming, device drivers, low level network programming.  Web has worked itself into what I do, and I'd like to complete the picture right onto the front end.
======
bartonfink
For what it's worth, I now describe myself as a full-stack developer even
though I cannot make something pretty. I see that as a designer's job, and
while a front-end specialist should be able to whip something up in photoshop,
I think that it's perfectly reasonable to say that your part of the work ends
with something being functional.

It's almost essential to be familiar with jQuery for in-browser Javascript
development these days (I'm not sure of its market penetration but I'd be
shocked if fewer than 33% of websites use it). There's lots of cool new
libraries on the front end with various pros and cons, but jQuery is a really
good start.

~~~
bdicasa
Check out Twitter Bootstrap as well. It works well with jQuery and you can end
up with a pretty nice site even if your design skills aren't that great.

~~~
mcs
<http://jetstrap.com> is a GUI for building pages with backbone components and
getting html generated for you

------
dccoolgai
I (and I think this is a pretty popular perception) consider a "full stack"
developer as someone who has thoroughly mastered at least 1, and is familiar
with at least 1 or two other approaches from each layer in the following list:

Web Layer: Javascript (and/or one of its many frameworks like jQuery,
Backbone, etc), Ruby, etc. Server Layer: Django, Rails, Cake, Node, etc. Data
Layer: Postgres, SQL Server, etc.

All of that stuff you can learn for free on-line. Come up with an idea for a
website that involves storing and manipulating data and can handle large
numbers of people using it simultaeously. If you can make the whole thing by
yourself, you are a full-stack developer. If you can't, figure out what the
missing piece is and learn it.

------
davismwfl
You are getting good advice from everyone. Learn HTML (and the HTML5
specifics) and learn how to use jQuery, javascript and css. Every front end
dev needs to learn css and be totally comfortable with it.

My 2 cents on starting with javascript/jQuery: learn how to select items by
id, using css selectors etc. Then learn how to get and set values of different
input types, setting css properties, showing and hiding elements etc. All this
is basic but will give you a good start. Also good to learn how to properly
use ajax and jquery to and populate list boxes or something just for practice.

Learn how to use Firebug and the browser tools like Chrome dev tools to debug
javascript and css issues. Get familiar with Fiddler or similiar tools if you
aren't already.

Just some idea's on things you will always find yourself using or needing to
know so you can figure out how some library is working which helps you debug.

------
penguin_gab
Learn about HTML5, CSS3 and a little bit of Javascript, enough to understand
and utilize jQuery like what bartonfink said. This is as front-end as front-
end gets for web development.

Do not worry about design or templating, knowing a bit of Photoshop/
Illustrator is good, but it should not be your priority considering you can
buy high quality templates from ThemeForest.net for $10 - $30, or even hire a
designer if your budget allows.

Also, you may want to consider working with a web framework to make your life
easier, like Django or Flask.

This is from someone who comes from a similar background as you. My background
was in C, C++ and Objective-C, and I do mainly embedded systems and low level
programming. It took me a few weeks to learn HTML/CSS/JS and another few more
to get comfortable with Ruby on Rails, and 1 year later now, I can basically
build and prototype any web application I can think of.

------
codegeek
Other than twitter bootstrap, check out <http://foundation.zurb.com>

