Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Recommended books for beginner web developer
5 points by sixQuarks on Nov 12, 2014 | hide | past | favorite | 14 comments
I'm a long-time biz guy and I've recently started learning PHP (I already know HTML/CSS).

For my first real-world project, I want to work with a JSON api, analyze some data in the api, and display the data on a site.

The books I've read so far have taught me all about variables, functions, arrays, etc, but I feel I don't have a good sense of how to actually apply this knowledge yet.

Any good recommendations?




Here's a great collection of resources (compiled by Zed Shaw) for learning about programming, software and web development:

- http://programming-motherfucker.com/become.html

You'll find resources on Zed's site that will help you learn the web development toolchain as well. You'll want a good editor, an understanding of git and version control, as well as the command line (apologies if you're acquainted with these already but looking to get into web development).

Another thing to remember is that once you grasp the basics, you can learn a lot from reading other people's code (especially libraries) and the associated documentation.

Some other resources that helped me out immensely when I was getting started (or that I wish I'd read):

A great overview of JavaScript.

- http://eloquentjavascript.net/

Once you get the basics of JS down, this book will help you learn how to organize your code better.

- http://addyosmani.com/resources/essentialjsdesignpatterns/bo...

An overview of HTML5.

- http://fortuito.us/diveintohtml5/

While it's from 2010, most of it is probably still applicable. This was the intro to CSS that helped me grasp the box model and DOM.

- https://code.tutsplus.com/tutorials/css-noob-to-ninja--net-1...

This is a great book for learning how to organize SASS/CSS files in a large project.

- https://smacss.com/


Thanks for the great suggestions! very much appreciated.


No problem. You should also check out Chrome Developer Tools. They're an essential part of the front-end web development workflow.


That's the "inspect element" links on the chrome browser, correct?


I was in this spot about a year ago and have picked up quite a bit of web dev ability since.

I tried a few books, but they didn't really sink is all that well. Here is what I recommend:

- Take cs50 (Harvard intro class) from iTunesU. After attending school for 16 years, this is the single most worthwhile class I've ever taken. Plus it's free. It will give you a basic understanding of programming and a look at how to solve problems. Once you have completed this class, php, js, objective-c or whatever language you are interested in will have a lower learning curve. If you want more, Harvard has archived lectures and assignments of several other web dev classes and they are available online (for free).

- Start with Laravel, which is a relatively new php framework. The best thing about Laravel is that you can make progress in building items quickly and as you learn more, improve them. Like you, I wanted to start building things immediately. Within about 4 hours of reading tutorials, I had a basic CRUD application live. Laravel has a big community with many, many free tutorials. Check out: www.scotch.io and http://maxoffsky.com/category/code-blog/

As others have said, you can probably do this same thing with Angularjs. It might even be the better option.

- join Stackoverflow.com. It is likely that any problem you encounter with Angularjs or Laravel will be discussed and solved there.

- Join Codecademy.com to practice js, jQuery and php syntax.

Good luck.


My recommendation: Stop learning PHP (as you've just started) and try JavaScript instead. You can use it in backends, front ends and even in some databases.

node.js and angularJS tutorials might help to get started right away, without any book to read.


Actually can't stress this enough: Go JS as @ifcologne said. PHP is the way of the past, JS is the current status quo and (given what people are creating around JS) the future.

That said, programming is not about one language. It's about understanding patterns and program design (most specifically models). But you'll have to time to learn all these things later on.


Yes, start with HTML + JavaScript.

http://www.w3schools.com/js/ has a very clean, straightforward tutorial with complete reference. My advice would be that as you learn you should take notes in form of questions, so instead of writing: "To declare a function: function name (...) {...}" write a question: "How to define a function?" Then rewise your questions after each chapter and write your answers on a piece of paper, not into the computer - you'll memorise the syntax faster and better.

After reading the entire tutorial you should have about 8-10 pages of notes with questions. If you don't remember how to write something, go back to the online tutorial/reference and find what you need.

At the beginning don't spend too much time on the Math or Date functions, as these won't be that much useful. Focus on Strings and Arrays instead, regular expressions are also fun to play with.

And after you're done with the basics you could try the Design Patterns: http://addyosmani.com/resources/essentialjsdesignpatterns/bo...

Thirdly: as you learn you should try to build things that could be useful for yourself and that you would enjoy building. For instance you could try to make a simple flashcard system or a little script that could strip a given string from HTML tags, or a script that would create numerated footnotes on your website. Something like 150-200 lines of code.

Your could also play with manipulting SVG elements with your JS - it's very rewarding and I believe that as for a beginner it's important to SEE the effects instantly.


That's an excellent set of comments that I'll take into account for the next lang I'm gonna learn! :-) ty


I do plan on learning javascript as well. The thing is, PHP is easy to pick up, and I feel it has helped me grasp programming concepts easier. Also, I need to work with a database and MySQL seems like the easy way to do that.

I'm not looking to program as a career. I just want to be able to do some basic stuff without having to rely on an outside programmer.


After you get the basics of JS, you should check out https://www.angularcourse.com. It helps you get to exactly where you want, which is to have a real deployed app with a database.

I'm the creator and am happy to walk you through anything if you find something confusing.


Second this - JavaScript will give you a higher likelihood of finding a job, and it is easy to get into. For angular, the egghead.io videos are generally recommended by people.


This book is a good place to get your feet wet putting together a simple php/mysql app.

http://www.headfirstlabs.com/books/hfphp/

I would recommend setting up a few projects/apps from scratch with php/mysql. Just so you can see how things work.

After that checkout Laracasts.com (or start there if you have a basic understanding of php/mysql). This will teach you the basics of the Laravel PHP framework.

Other than that just google any questions that come up and look for stackoverflow.com results . . .

Good luck with your web development adventure.


I think you should focus on learning how to program and avoid any sort of "web development" learning path. Choose any programming language and start doing the problems here: https://projecteuler.net/




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

Search: