Maybe you're in college/ just graduated/ want to change your career path towards programming, assuming that you have already begun learning the in trend technologies and assuming that you already are working on a small project from the tutorial or whatever the resources you have accessibility to.
It is very important for you to gather courage to accept failure and get out of that tutorial loop and start building something, at least a todo app where you are made to write the Create Read Update Delete functions.
YOU LEARN PROGRAMMING ONLY BY FAILING TO BUILD✊🏻
So, now you're done building at least two or three projects while implementing the concepts or the frameworks you've learnt, but that knowledge from tutorials is like learning the alphabets of a language. You have to know how they write code for production projects and that can only happen if you have an internship or at your first developer job.
Let me tell you about the internship experience and the take aways from that experience to land at a full-time job as an apprentice developer.
- Knowing that even your mentors or senior developers are learning something new everyday and googling their errors or ask others for help. So, you have no reason to be afraid of not knowing much about programming, but you need to have that zeal to know and adopt to the requirements.
- Writing understandable code. After several personal projects we tend to use variable names or code structure as we are pleased but in an organisation that is not encouraged as many people might add features to the product and it becomes a tedious task for them to understand why you named a variable as "foo" or "bar".
- Writing reusable code. For a production level code, you will most probably use the same functions to get different features work and you might want to save on time and energy writing the same code over and over again allover the place. For this you'll write the common function or method in a file to import and use it wherever it's necessary.
- Writing modular code. It is obvious that 1.7k lines of code in one file makes anyone frustrated and it becomes difficult to debug while writing code and nevertheless it doesn't support maintainability of code. So, you write code by dividing the code base into maintainable and manageable chunks, you might have come across this while going through a tutorial but this is where you find its importance.
- Knowing the important parts of the code and different techniques or methods of achieving a feature implementation, sometimes you can think out of the box since you have less presumptions about the possibilities.
- Giving equal importance to User Experience and User Interface along with business logic as end users will get experience the client side and won't see the business logic running on the server.
- Meeting deadlines and knowing to promise only the possibilities to the client and make them understand what is possible, if you're allowed to sit at the table and put forward your ideas and this is possible since the seniors know that you need to be a part of all this to know about the cycle and system.
- Knowing that everyone goes through the same struggle to become a great programmer, is easier to lose track of time and overheat the brain. Taking breaks to refresh and declutter the mind to think clear and write clean code or logic, this also helps you keep that motivation meter on high and keep the frustration meter from bursting.
- Everyone has side projects or personal projects to keep learning new tech that are outside the current project requirements, who knows maybe that's included in the next project's requirements. Data Structures and Algorithms are going to help you no matter what level programmer you are.
- Most of all you get to network and meet amazing community both virtually and personally and make some cool friends. Remember that all it takes is to be active on relevant social media and showcase achievements or the personal projects and writing blogs about the concepts you've learned while building projects and helping out others on places like stackoverflow.
Programming is HARD, so is the reason you find many give up the ladder and those who don't give up, get to be the greatest, given they embrace eternal learning.
LEARN UNLEARN. RELEARN. ♻️
All above is what everyone gets to go through irrespective of the stack or OS development you do.
I am doing my internship at a state government run start-up T Works as a full-time full-stack intern developing a sourcing application using the MEAN stack. Everyone here at my office are super cool and cooperative in making me feel home and learn things with ease.
Time⏳ is Money💵
You now have Time to make Money.
So, understand where you invest your Time, google or ask someone who's into this field for a longtime.
Logic Reason and Common-sense are going to help you achieve your goals✊🏻
Hope you get to do an Internship and learn as much as you can since you might not have so much pressure to learn things overnight and burnout your patience.
Happy Coding <😊 />