Hi, this is my first post on IH.
I am currently an apprentice in a mid-size web dev company. At first, I learned a lot, but it seems like I am hitting a point where learning is becoming slow and tasks are more or less repetitive and work take so much time I don't have a lot left for my side-projects. I got an apprenticeship offer from a startup and I want to start working for them.
Knowing that my goal is to become so good I can live off my own products (even if the income is not guaranteed, but it feels more passionate and employee life is depressing me)? Do you think that I am taking the right approach here? What would you advise me to choose between a well established mid-sized company which gives importance to best-practices and clean code and a small ambitious startup where I can touch so much more stuff and make more technical decisions?
I think the biggest benefit of joining a small startup is it can help you see what struggles and challenges an early-stage startup faces as a business...not just what you might learn technically.
I think if you're intentional about what you want to gain, you can learn a lot from joining a smaller startup. In a larger startup, it's pretty common to get pigeon-holed deep within a dev team. In a small startup less than say, 12 people, you'll get a lot more insight into what some of the other employees do (sales reps, marketing, customer success) and even why they need to exist. Their roles seem fairly intuitive, but if you're intentional about learning more about them, I think the nuances you'll learn about those roles will be invaluable towards your own startup in the future.
Another benefit of a small startup is time goes by dog years. You're going so fast at this stage (versus later stages), you'll also experience/learn quickly in 6 months, what you may never learn in 3 years in a larger startup. As a simple example, in a larger startup, you might assume the first person you hire is a Sales Director to manage sales, cause that's the team structure you might see in year 2. In a small startup, you'll actually find that the founder is doing all the outbound emails sequences and demos and hiring a contract SDR from the Philippines for lead prospecting to save on costs for the first year.
Once again, if you're intentional about learning...I'd prob go with a small startup if you can afford it financially. My 2 cents :)
100% agree with Pat - I joined a startup as the first employee and was really surprised about what I ended up learning.
There are so many great lessons I learnt that go well beyond anything technical or domain specific:
If you can afford it, go for it - it's great experience.
Neither will make you come closer to those skills. I worked at three startups. It’s exciting, and depending on when you come in you’ll be touching a lot of stuff. However, startups are chaos. You’ll spend a lot of time managing living that chaos.
Funny thing is... the company I work for benefits a lot from me putting in the extra hours. I learn new tech and think a lot about how I can build so my stuff doesn’t end up breaking mid day. It’s not achievable, but those best practices I’ve brought back to the company.
A startup by day and startup by night is not the right choice.
A course on Udemy is probably the cheapest start in terms of time invested (and usually they’re like $10-20). Find one that teaches you some tech stack, and ship something with the skills learned. I’m sure there’s some “from zero to heroku”-type of course ready for you.
(Sorry I didn’t intend for the pun.)
I'd say just get stuck in wherever you can. I'm trying to teach people to build things without even needing to be technical so I wouldn't set a barrier on your technical skills.
Learn by doing.
I second this - start shipping small projects in your spare time and you'll learn so much.
With that being said, I found being at a small startup very helpful, but not as helpful as shipping side projects.
If you're working as a full stack developer, it'll probably take around 1.5 years until you have the tech skills to do your own startup. This is assuming you're going home and teaching yourself stuff at night though, not just coding at work. (For the first six months, you'll probably need to spend a bunch of time off the clock just learning the basic skills you need to do your job and not get fired.)
Also, it'll take you about 6 months to get up to speed on the tech stack for your first project. Once you're able to contribute proficiently it's easy to coast, but you may get better faster if you switch projects after a year or so and are forced to work with different technologies or on different parts of the stack.
I cannot comment on the tech aspect of this question, but I did find my experience in a startup to be one of the most impactful learning experiences that enabled me to venture on my own.
I did get mastery of some of my technical skills (I'm a Finance & Operations person), but the true value added was watching the leadership team stumble through building a startup and user base.
Startups are more chaotic, yes, but to experience that is a huge plus. You will be dealing with many similar issues when you start your own work, so watching a leadership team at a startup handle high stress, mission-critical problems is great experience. The leadership team at the startup that propelled me forward was a mess, but it taught me critical lessons about good vs bad leadership and decision making. I also learned a lot of value of team and letting people go when they aren't providing enough value. There were so many less tangible learnings that would be much harder to obtain at a mid-size company. I am a huge advocate of anyone who wants to start a company having experience at a startup.