Ask HN: Are Online Courses Enough to Become a Full Stack Web Developer?

32 points by jackxx ↗ HN
There are so many sites available and I'm so confused like do you need a CS degree to become a Full Stack web developer? Can someone with no CS degree become a Full stack developer by taking online courses? Thanks

11 comments

[ 3.5 ms ] story [ 30.0 ms ] thread
You do not need a CS degree to become a full stack developer. All you need is determination and patience. You need to write as much as code as you can. Solve problems. While having a CS degree would help in knowing the major concepts such as Algorithms, Data structure, Security and to name a few, it's not compulsory. You can take CS online courses via Udacity, CS50 and Coursera and to name a few. Know the concepts and dive into web development.

Start with HTML & CSS then Javascript and jQuery. Know Node.js and Angular.js, bootstrap etc. Pick any language for the back-end. You can either use Python, Ruby, PHP Javascript or anything other.

I recommend https://ilovecoding.org/ they have interactive courses and lessons, you can get hold of how the real world applications are made, what goes behind the scene while building practical web apps, mobile apps, games etc.

Your code is going to look horrible at start but don't give up. start dipping your toes then move all the way. DON'T procrastinate and don't give up. Good luck

I would consider myself a full stack developer, hell I've even made a decent career out of it. I don't have a CS degree, what I do have is many many years experience. I know HTML, CSS, JavaScript (including whatever the latest fad is be in jQuery, Node, Ember et al...), PHP, Python, Java, SQL (MySQL and MSSQL), NoSQL (Mongo, Elasticsearch etc...), and I can set up, secure and maintain a web server running Ubuntu, Redhat or CentOS.

You can't reliably learn all of this from an online course, although it might be a good starting point, you become a good full stack developer after years of experience.

No, you don't need a formal degree.

But don't just do courses. Have a project that you've aligned with the outline of the course you're currently on. Small at the start, then getting bigger, over several years, integrating a new skill but still applying older skills, so they don't get rusty.

And as well as the front- and back-end site, get dirty with the OS level too. The ins and outs of configuration files. Perhaps contribute to mailing lists, or have a StackOverflow profile where you start by lurking, then getting interactive. Expect to get criticized, sometimes rightfully, sometimes from armchair engineers, and learn from both - the knowledge and the tact.

As novicei stated, don't wait. Get started now! :)

Yes, you can be a very good developer quite quickly nowadays. Free tutorial like this: http://yoember.com helps to learn from very basic concept to advance features. The most important is practicing every day, you have to spend at least 2 hours, every day with programming... Sounds crazy, but you can start applying for developer jobs on the second week and you will get great tasks and tricky questions... You probably will fail a couple of times... but those tasks and questions give you new challenges what you have to chase and learn. A month later you will have a junior job where you can learn more focused solutions. You will love this new world and you want to go to learn more things, so a few years later you can go back to university part time and learn CS there, just for fun, but you will enjoy. Good luck! You have a great journey ahead. ;)
From my experience, you'll probably find a degree carries more weight with companies that are larger and further from actual tech.

Looking to do big 4 consulting? A degree will go a long way.

Looking to dive in at a start-up? A portfolio probably carries more weight - regardless of a degree.

There are always exceptions, but that's on par with what I've seen.

!mobile_disclaimer

Sure! With a but: proficiency comes from practice.

"Learn by doing."

It's tough to weed out the bad resources on the internet, but you've come to a good place to find the good resources that are available (free or paid).

You'll get out of it how much you put into it. If you spend countless hours learning and then building projects you will learn new things very quickly. Don't get caught watching tons of videos & screencasts while not building anything.

You can read 1,000 books about surfing but when you go to surf you'll fail repeatedly. The same goes with building software. Read code and then write code 5x as much.

The courses are good for beginners, but to take it to the next level you need to build a sizable app and get it to production. There are things you'll learn from putting a project to production that you wouldn't learn otherwise. Remember: software is built for users & actual people, not just machines.

are they enough? no, they are not. but, they do provide a rock solid foundation. working with someone more experienced and / or hiring a tutor for a bit is also very helpful. there are a few but very important tricks that courses don't teach and that will take you lots of time to figure out on your own. programming, like any other job, has its own way of thinking. online courses don't teach it either. so, that's where being seated next to someone who knows their stuff is of crucial importance. if you can't afford a tutor, look for an unpaid internship or offer your free help to a more experienced developer

can you become a developer with no CS degree? sure as hell you can! my formal education lies in philosophy, economics, education, fine arts and spanish language and literature. i never took a single computer science university class. at least, not formally and on campus. yet, i have a decent career as a developer, serial tech entrepreneur and i was even teaching programming and CS. but, i was reading a lot, had my share of tutors, worked a lot, worked a lot with some of the world's best developers, took some online courses, tried many things, failed many times, some other times even succeeded

before becoming a developer, i had a successful career as a graphic designer and a photographer. luckily i was always a geek and loved technology. i've literally faked my way into my first developer (front-end) job at one silicon valley startup more than ten years ago. i was doing plenty of web design work and even more corporate identity work back in the day. my coding was rusty and definitely non-web given i previously fiddled with programing in the 80's and early 90's. the above mentioned startup's cofounder liked my visuals. he asked me can i do their UI, coding included. i said ''yes''. while making sure he liked what it looked like, i was studying CSS and HTML pretty hard. front-end back then was a pain in the ass to deal with. but, boy, did i get it wrong. so i literally had to rewrite all front-end code two days prior to deadline. well, somehow i've made it. was offered a job. accepted it. then i was hanging out with some of the brightest programmers, learned from them and on my own. as business grew up and they were onboarding designers (very few designers could code back in the day and transition from print to web was painful, while majority of developers had no clue about design. there were no tools/frameworks/libraries/templates/themes available either), i helped designers understand tech concepts, while i was helping both developers and designers communicate with each other

except for some hardcore computing stuff, you really don't need a CS degree. for stuff more advanced than developing database-driven websites and apps, having domain expertize is way way more useful than holding a CS degree