The end-to-end Software Developer is a Software Engineer who can take an idea and make a successful business out of it. From the definition, it is clear that it is not for everybody and many people will have some specializations and gaps in skills. And it is normal.
The more well-rounded end to end engineer you are the easier to make a living by:
- making your own company/product/business
- joining a small company that values and needs generalists
- be a consultant that strives in the intersection of particular areas
- emphasize with and understand much better your colleagues, so that you can make yours and their job better
- launch a side business. Here is a very helpful link.
- 1-(wo)man startups
- your own reason to know more goes here :)
Just to make clear that none of these things is easy and you will need to work hard continuously to make it a habit and acquire a particular skill set.
Communication is pretty important for any serious job, nobody works in a cave and wants to work with a jerk
1. Improve your written communication skills by having a personal blog or contribute to other publications.
2. Write responses to other blogs, on sites like Hacker Noon.
3. Write a small e-book about an interesting to your niche or about your unique knowledge.
4. Improve your speaking communication skills by presenting to your colleagues, at the meetups or conferences.
5. Sing up to Toastmasters and finish a pathway that will help you influence people better.
6. Improve your presentation skills by leading boot camps, have your own youtube channel where you teach people skills you know.
7. Have a podcast where you interview experts in a particular area.
8. Read books on presentation, negotiation, public speaking.
9. Learn from TED talks and train to present whenever you have a chance.
10. Go to other businesses and negotiate a better deal for you. For example, get that price down when you service your car.
11. Write a book or e-book.
12. Subscribe to A Cloud Guru, Udemy, Coursera, and practice gained skills.
13. Have a side project which helps you to learn and practice
14. Contribute to open source projects.
15. Make small products for marketplaces that solve a problem.
16. Try to do something new, but useful monthly. For example, learn a new language or a framework monthly.
17. Find 5 SaaS services and learn that API by developing integration between them.
18. Develop a chatbot that works with a SaaS.
19. Develop a simple game.
20. Participate in a hackathon, online or offline.
21. Get back to uni, even though I won't do it myself, it may be useful for some goals and people.
22. Get an f88king MBA.
23. Attend conferences and meetups to learn, make friends and share stuff you know.
24. Get on Stack Overflow, Quora and help people, a lot.
25. Create an open source project and convince people to work with you on it.
26. Develop a website, mobile app for a none for profit organization.
27. Teach programming to children. For instance, CS First from Google is a good one.
28. Master the tools you use and learn new tools from time to time.
29. Find a teacher/mentor.
30. Interview job candidates to learn and practice, attend some interviews yourself.
31. Invest in understanding machine learning and data science - http://aiplaybook.a16z.com/ AND https://developers.google.com/machine-learning/crash-course/
32. Read a few books on visual design and UX, find a mentor/advisor.
33. Master Sketch or Photoshop to have a design tool under your belt.
34. Do 10 end to end projects in 10 weeks.
35. Design an App or a Web site for free for your friend. Try to charge for your work. Use your negotiation skills.
36. Learn revision and similar tools.
37. Collect a set of links where you can see the best practices and how others are doing a great job.
38. Learn and practice DevOps. Read books like DevOps handbook, Accelerate and Lean Enterprise.
39. Learn services that help you to know what is going with a production system. Services like Datadog HQ, Splunk, NewRelic, PagerDuty etc.
40. Learn CircleCI, Team City, TravisCI and other build systems.
41. Familiarize yourself with Incident management processes and post-incident reviews.
42. Read terms and conditions and privacy policies of interesting to your companies.
43. Create a multi-region web app and bring locations and things inside a location down and learn how to make resilient applications.
44. Learn how to make different kinds of tests: unit, integration, browser/UI, performance, penetration, exploratory etc.
45. Practice making data-driven tests.
46. Understand the latest 3 releases of OWASP Top 10.
47. Learn a few testing frameworks for the environment where you work in, have your opinion.
48. Practice Quality Engineer hat by making Quality kick-off before every feature, write important test cases and definition of done for every task.
49. Play a Quality Engineer role for somebody else.
50. Learn how to interview customers/people.
51. Make sure you understand how to make research and make judgments based on it.
52. Learn a few ways to document requirements (Jobs to be Done, user stories in a Given When Then etc).
53. Learn wireframing software like Balsamiq and some other product management techniques here https://www.productmanual.co/
54. Learn and practice communication with stakeholders.
55. Interview 30 product managers (pay for their lunch or coffee). It will be super helpful, I promise. Watch interviews with product managers at Product School.
56. Learn the best practices in communicating requirements and motivating people without a direct management line. Learn how to influence others.
57. Learn how to test ideas, validate a variation with A/B or multi-variance testing.
58. Make sure you understand competitors, watch them and can ignore them.
59. Watch some videos from Product School or similar youtube channels.
60. Product lead features, innovation initiatives or similar practices in your current company.
61. Subscribe to Teresa Torres, Intercom's podcast, Masters of Scale and other sources of information that will help you grow.
62. Learn some project/program management tricks and techniques.
63. Improve your time management skills as well as road map planning.
64. Learn a few project management tools like Jira, Asana, Trello.
65. Learn how big physical projects are done. For example, learn what it takes to build a bridge or a building.
66. Learn about all marketing channels like SEO (including site performance, link building etc), Paid search, email, social, referral etc.
67. Learn about content marketing, copywriting and use your written communication skills to share with people solutions to their problems, product updates etc.
68. Collect a set of best marketing copies, ads and other material to use as an inspiration.
69. Understand basic analytics (including tools and approaches), funnel analytics, churn and other product metrics which you want to move with your marketing.
70. Read the top book on Marketing, people influence, and branding. "The 22 Immutable Laws of Marketing" and others.
71. Get the financial basics of business. This will make you more pragmatic. Imagine if you would pay everything from your pocket, will you make the same decisions?
72. Understand the main roles and responsibilities of people in a company.
73. Find and learn in depth of at least 10 businesses. Read or listen "Good to Great" and other business books
74. Try to hire a few people if you haven't done. Start with small jobs. You will learn to interview, communication and business negotiation.
75. Play poker, invest in stock, try gambling and similar things where you train yourself on risk-taking and will learn things about yourself.
76. Learn the main software and business risks. Learn as many cases as you can when the risk paid for and when not.
77. Get familiar with risk-based testing and approached.
78. Do something physical and risky. For instance, sing up for an ultra-marathon or climb a mountain.
79. Generate 10 new product/business ideas daily for 30 days. If it seems easy, go for 50 ideas daily.
80. Discuss as many ideas with others to understand what is risky. Make a website just to test ideas and learn.
81. Watch startup pitch days.
82. Always think 10X, not just 30%.
83. Blog ideas publicly, on sites like Hacker Noon, to get some critics.
84. Do little progress every day to benefit from the compound effect. Do bigger things every week or month.
85. Read or listen at least one book per week and at the same time abandon social media, series, and TV to win more time to do what matters.
Theory and practice
86. Learn the theory of all above, but take time to practice daily that matters for you and your career.
87. Learn new stuff often. Learn bigger things like a new foreign language like Spanish or Japanese.
88. Join a small business or start your own. You will learn a hell of a lot. If you are young I would strongly encourage you to consider joining a startup and not a big company to maximize your learning.