Loading...
Answers
MenuWhat learning path do I have to take to become a "full-stack" web developer?
Answers
If I was just starting out, I'd consider learning Meteor (https://www.meteor.com/). It's just entered version 1.0 and after working with it for a little less than a year I do have some issues with it but it still makes for a very solid framework that gets you up and running very fast. You would only need to learn Javascript, and you can slowly work your way towards nodejs from there (which Meteor is based on) if you want to, or you could get the basics down and focus on learning design if you prefer.
The tools and languages you use do not matter as much as your understanding of sound programming principles. I've programmed in a variety of languages and frameworks, and I could tell you that they're just tools that will help you get the job done, IF you use them properly.
If I was just starting out, here is what I would do:
1. Read and learn about Object-Oriented Programming (OOP). If you're going to build anything more than a few web pages, you'll need to know OOP. Checkout Deitel & Deitel books for a relevant title. These textbooks are just excellent.
2. Once you have mastered the above, research, choose a stack and stick to it. Unless you have very specific needs, all of them should get the job done. Learn that framework, and get really good at it.
3. Once you feel you have mastered your current skills, challenge yourself by trying to improve things even more. (e.g. better code commenting, version control...) If you want to succeed as a full stack web developer, you'll have to keep learning and pushing your boundaries. (Hint: You should also enjoy it)
I hope this helps.
"Full-stack" web developer does get thrown around. However I believe that is still has a pretty static definition.
My understanding is it is a "jack of all trades" scenario. Except by "jack" I mean ver knowledgable just not a master, and by "all trades" I mean the layers of of a full stack developer mentioned here:
http://www.laurencegellert.com/2012/08/what-is-a-full-stack-developer/
I would like to think that I am on my path to becoming a full stack developer. I believe this takes a long time. So I started by taking freelance work that enabled me to get my hands dirty. The more client need I answer the more I become familiar with all of these layers.
The only path I know to becoming a full stack developer is just start building things.
Want a starting point? Build an SPA that communicates with Wordpress for managing the state over the new WP JSON REST API, using Backbone.,js.
It's not something you want to achieve unless your goal is to be the technical cofounder of a startup. If you're the technical cofounder, *you* get to make whatever stack you want! You're the CTO. It's entirely up to you. Woohoo! Now you're the king of the mountain, but how are you going to make money? Technology is a means to an end. Nobody cares how the widget works. We only care about results. If you're caught up in the "programming for the sake of programming" mindset, get a PhD in Computer Science.
If you don't have a strong opinion about what stack to use, I think you're getting ahead of yourself. Maybe talk to your future cofounder about the market adoption of various technology. If you don't have a cofounder yet, maybe poke around Angel List and LinkedIn.
How hard will it be to hire people that know XYZ stack? Choosing unpopular technology will make it harder to scale the business. Assuming you're actually able to create something from scratch that works at all. I hear most computer science graduates can't create anything from scratch. Computer science programs crank out the employees that will work at your startup--after you cash out.
Ultimately, you need to be able to create something from nothing with your chosen language and do everything yourself--and have it all work flawlessly without weird bugs in the code causing intermittent problems. If you can't do that, you're probably barking up the wrong tree. You're only a full-stack developer out of necessity, because you can't afford to hire yet and you don't want to split more equity with a third person.
(As long as we're on the subject, I think an ideal cofounder for a full-stack dev would be someone that knows business law and marketing.)
After your imaginary startup starts growing, you'll want to hand the software over to a software architect, a dev-ops genius, a project manager, people to take it to the next level. Once it's time to hire, the business needs a completely different skillset that the full-stack technical cofounder doesn't have.
Working for any large company, they should have you doing specialized work. There can be only one CTO and it's probably not you. If it's a small company that can't afford to hire a sysadmin and a designer and a developer and a DBA, do you *really* want to do the job of four people?
"Full-stack" is more like a battle scar you get to talk about. Maybe it looks cool, but in retrospect it wasn't something you wanted.
The "full-stack" is a vague term, but in the context of web development I would define the following group of skills:
* HTML/CSS (the basics)
* JavaScript (extent may vary on the platform)
* A script-based programming language (one that allows you to think in procedures as well)
* An OOP language (or the flavor of the first language with all of the OOP paradigms in it)
* Database programming
* Design patterns
* MVC in particular - most frameworks out there are MVC-based
That would help you to program in most popular languages out there and be effective while working HTML5 paradigms, JavaScript libraries and frameworks, and incorporate them in all web-driven languages or platforms. Depending on the type of work there may be other sections, such as:
* Computer architectures - I don't believe you can be a senior backend engineer without understanding the actual hardware components responsible for everything
* Networks and server management - some good basics of hosting management skills
* Security - related to everything before, but it's another important topic for full-stack developers to always take into account
* Performance and scalability - writing a high-performance code is a skill that depends on your understanding of the server stack, the memory layer, CPU executions etc.
* DevOps paradigms - testing (all sorts of), continuous integration, tooling (version control, automated deployment, staging setup)
UI/UX/etc don't click with me when I hear "full-stack web developer" - that is more of a frontend developer/designer aspect, and is definitely not a requirement for full-stackers. It's always helpful to be able to wear more hats - design, UI/UX, marketing, soft skills could help you build a better product, lead your team or be a mediator between the team and the client, but it's hard to juggle with everything and the first group is easier to keep together in the same basket while improving your skills.
I have worked with many Indian companies as an HR and few of them used to be IT companies. I have hired many full stack developers, and what I have learned during this period of time is that full stack developer is a guy who knows everything. We hired full stack developers mainly because:
1. Full stack developer helps you to keep every part of the system running smoothly
2. Full stack developer can provide help to everyone in the team and greatly reduce the time and technical costs of team communication
3. If one person plays different roles, it saves your company's personnel, infrastructure, and operational cost
When I investigated their CVs, I found the following skill sets:
1. Front-end technology: Full stack developer should be master of essential front-end technologies like HTML5, CSS3, JavaScript. Knowledge of third-party libraries like jQuery, LESS, Angular and React JS is desirable
2. Development Languages: Full stack engineer should know at least one server-side programming languages like Java, Python, Ruby, .Net etc.
3. Database and cache: Knowledge of various DBMS technology is another important need of full stack developer. MySQL, MongoDB, Oracle, SQLServer are widely used for this purpose. Knowledge of caching mechanisms like varnish, Memcached, Redis is a plus.
4. Basic design ability: To become a successful full stack developer, the knowledge of designing is also recommended. Moreover, the person should know the principle of basic prototype design and UI /UX design.
5. Server: Exposure to handling Apache or nginx servers is desirable. A good background in Linux helps tremendously in administering servers.
6. Version control system (VCS): A version control system allows full stack developers to keep track of all the changes made in the codebase. The knowledge of Git helps full stack developers to understand how to get the latest code, update parts of the code, make changes in other developer's code without breaking things.
7. Working with API (REST & SOAP): Knowledge of web services or API is also important for full stack developers. Knowledge of creations and consumption of REST and SOAP services is desirable.
Many of the full-stack developers that I hired in my company as an HR also were proficient in software stack. Software stack is a collection of the programs which are used together to produce a specific result. It includes an operating system and its application. For example, a smartphone software stack includes OS along with the phone app, web browsers, and default applications. Notable among them are as follows:
1. LAMP stack: LAMP is a widely used model for web service stacks. Its name "LAMP" is an acronym of four open-source components.
1. L= Linux: An open source operating system
2. A= Apache: Widely used web server software
3. M= MySQL: Popular open source database
4. P=PHP: Server-side open source scripting language
These above-discussed components, supporting one another. Many popular websites and web applications run on LAMP stack, Example: Facebook.
2. MERN stack: MERN is a collection of JavaScript-based technologies:
1. M=MongoDB: Popular NoSQL database
2. E=Express: Light and portable web program framework
3. R=React: A javascript library for building user interfaces
4. N=Node.js: A server-side JavaScript run time
This stack currently in the huge demand as it is widely used to develop web applications.
3. MEAN stack: MEAN Stack Application Development is witnessing a growing trend in usage. MEAN is an abbreviation of:
1. M = MongoDB: nosql Database
2. E = Express: Easy to use light and portable web program framework
3. A = Angular.js: Robust framework for developing HTML5 and JavaScript- web programs
4. N = Node.is: a server-side JavaScript run time
These were all or some of the jobs that a full-stack developer did in Indian IT companies:
1. Translate user requirements into the overall architecture and implementation of new systems
2. Manage Project and coordinate with the Client
3. Write backend code in Ruby, Python, Java, PHP languages
4. Writing optimized front end code HTML and JavaScript
5. Understand, create, and debug database related queries
6. Create test code to validate the application against client requirement.
7. Monitor the performance of web applications & infrastructure
8. Troubleshooting web application with a fast and accurate a resolution
Besides if you do have any questions give me a call: https://clarity.fm/joy-brotonath
It's great that you're planning a comprehensive learning path to become a full-stack web developer. Your outlined plan looks solid, and you've covered key areas for both front-end and back-end development. Here's a breakdown and some suggestions:
Front-end Development:
HTML, CSS, JavaScript, and jQuery are essential foundations.
Learning Angular is a great choice, and considering your interest in UX/UI, exploring frontend frameworks like React could be beneficial.
Back-end Development:
Ruby on Rails (RoR) is an excellent choice for your back-end development. Understanding the MEEN stack (MongoDB, Ember, Express, Node) is an alternative, but given your interest in Ruby on Rails, it might be worth sticking to RoR.
JS Frameworks:
Expanding your knowledge in JS frameworks is a good idea. Consider exploring React or Vue.js in addition to Angular, as they are widely used in the industry.
UI/UX Design:
Your knowledge of Photoshop and Illustrator is a valuable asset. Learning UX/UI principles is a great step. Tools like UXpin and Sketchup are also useful. Consider adding tools like Figma or Adobe XD to your toolkit.
Regarding your learning path, it's not about replacing 1, 2, and 3 with the MEEN stack. It's more about choosing the stack that aligns with your goals and interests. If you're keen on Ruby on Rails, stick with it. However, exploring MEEN can broaden your understanding of different technologies.
For additional insights into web development, you might find this article interesting: https://www.cleveroad.com/blog/how-much-does-it-cost-to-hire-a-react-developer/. It discusses the cost aspects of hiring React developers, providing context into the demand for React in the industry.
Best of luck on your learning journey, and feel free to reach out if you have more questions!
Related Questions
-
How much should I charge to develop a WordPress site?
Take the # of hours it takes you to do it and charge $50/hour. That's the price. Eventually you can charge $100/hour but that will require a bigger customer. If the customer is small < $1M in gross sales per year - charge $50/hour If the customer id medium < $1-5M / sales - charge $75 Over $5M - charge $100 The challenge you'll face is clearly defining the expectations and handoff so that you're not stuck doing stuff that you can charge for and always getting interrupted from past customers.DM
-
What 3 questions to pose to a developer, to gauge his expertise level?
If you're not technical yourself, then you might not be able to gauge the efficiency of a candidate's algorithms or critique her code. But there are still some higher-level, more behavioral things that a non-technical interviewer should be looking for in a strong development candidate: 1. What are some tech blogs that you follow? Explain an interesting article to me that you read from one of them. The software development world changes all the time. Best practices are constantly evolving and new libraries are regularly released which make developers more productive. If a candidate doesn't keep up with the latest software news, that might be a red flag that they're not curious or trying to improve themselves. Also, having them explain a technical concept to someone who's non-technical is a great way to gauge their communication skills. Do they seem like someone you could work with and understand easily? Do they care about pausing to make sure you understand, or do they just drone on with jargon? If you feel overwhelmed while they're explaining this answer, imagine how you'll feel when they're telling you why the product has bugs or isn't going to be done on schedule. 2. Tell me about a time you ran into a big roadblock with something you were building. How did you get past it? It's inevitable that a software developer will get tripped up or have to solve some Gordian Knot. Everyone has to bang their head against the wall from time to time. Maybe an API didn't have the data they needed or some function was running too slow and they weren't sure how to speed it up. You're looking to see how they are as a problem solver. Did they come up with a clever but hacky solution? Were they methodical or did they fly by the seat of their pants? Did they go back to the stakeholders and see if the feature's requirements were flexible? Did they work on it for hours and hours trying new things? Did they ask for help from colleagues or on the internet? No right or wrong answers here, but you want to get the sense that this isn't someone who throws up their hands when they hit some friction. 3. Tell me about your favorite project that you worked on. What work are you most proud of? By asking them about the project they're most proud of, you'll get to see what it is that they value most. Maybe one candidate is most proud of a side project they built, even if it wasn't that technically complex, while another candidate is proud of their esoteric PhD project or some specific algorithm they improved. Again, no right or wrong answers, it really depends what type of candidate you're looking for. But it lets you see into their mind a bit, and get at some of the aspects that can make someone a strong development candidate. If you want to talk more specifically about hiring for your team, I'd be happy to do a call!HB
-
Should I create a WordPress site or build a custom website?
Go for Wordpress initially. -- Custom website will delay your launch plans considering all factors. -- Wordpress can be used to meet your requirements from day 1. -- Once you have enough visitors and decided the revenue model + business objective plan for a customized website to be developed from scratch.BK
-
What is the best method for presenting minimum viable products to potential customers?
Whoa, start by reading the Lean book again; you're questions suggest you are making a classical mistake made by too many entrepreneurs who live and breath Lean Startup. An MVP is not the least you can show someone to evaluate whether or not building it is a good idea; an MVP is, by it's very definition, the Minimum Viable Product - not less than that. What is the minimum viable version of a professional collaboration network in which users create a professional profile visible to others? A website on which users can register, have a profile, and in some way collaborate with others: via QA, chat, content, etc. No? A minimum viable product is used not to validate if something is a good idea but that you can make it work; that you can acquire users through the means you think viable, you can monetize the business, and that you can learn from the users' experience and optimize that experience by improving the MVP. Now, that doesn't mean you just go build your MVP. I get the point of your question, but we should distinguish where you're at in the business and if you're ready for an MVP or you need to have more conversations with potential users. Worth noting, MOST entrepreneurs are ready to go right to an MVP. It's a bit of a misleading convention to think that entrepreneurs don't have a clue about the industry in which they work and what customers want; that is to say, you shouldn't be an entrepreneur trying to create this professional collaboration network if you don't know the market, have done some homework, talked to peers and friends, have some experience, etc. and already know that people DO want such a thing. Presuming you've done that, what would you present to potential users BEFORE actually building the MVP? For what do you need nothing more than some slides? It's not a trick question, you should show potential users slides and validate that what you intend to build is the best it can be. I call it "coffee shop testing" - build a slide of the homepage and the main screen used by registered users; sit in a coffee shop, and buy coffee for anyone who will give you 15 minutes. Show them the two slides and listen; don't explain, ONLY ask.... - For what is this a website? - Would you sign up for it? Why? - Would you tell your friends? Why? - What would you pay for it? Don't explain ANYTHING. If you have to explain something, verbally, you aren't ready to build your MVP - potential customers don't get it. Keep working with that slide alone until you get enough people who say they will sign up and know, roughly, what people will pay. THEN build your MVP and introduce it first to friends, family, peers, etc. to get your earliest adopters. At some point you're going to explore investors. There is no "ready" as the reaction from investors will entirely depend on who you're talking to, why, how much you need, etc. If you want to talk to investors with only the slides as you need capital to build the MVP, your investors are going to be banks, grants, crowdfunding, incubators, and MAYBE angels (banks are investors?! of course they are, don't think that startups only get money from people with cash to give you for equity). Know that it's VERY hard to raise money at this stage; why would I invest in your idea when all you've done is validate that people probably want it - you haven't built anything. A bank will give you a loan to do that, not many investors will take the risk. Still, know not that your MVP is "ready" but that at THAT stage, you have certain sources of capital with which you could have a conversation. When you build the MVP, those choices change. Now that you have something, don't talk to a bank, but a grant might still be viable. Certainly: angels, crowdfunding, accelerators, and maybe even VCs become interested. The extent to which they are depends on the traction you have relative to THEIR expectations - VCs are likely to want some significant adoption or revenue whereas Angels should be excited for your early adoption and validation and interested in helping you scale.PO
-
Where to find quality graphic and web design leads?
If you are going to use Social Media Marketing. I would recommend you create a Pinterest wall of your work and back link them to your site. Try that.BK
the startups.com platform
Copyright © 2025 Startups.com. All rights reserved.