How to approach software development early on in career?
As an intern, I see that the enterprise projects are very different from what we make at university level. The technology used requires me to go through a lot of new technologies. How should I approach this. Should I be worried for not knowing these tech stacks or Is it natural and common for a new intern.
#software #computer-software #software-development #technology #software-engineer
17 answers
Storme’s Answer
There are some steps you can take though to ensure that you are making the most out of your internship. Meetup with your manager ASAP, and ask them what their expectations are of you. You should also discuss what you want to do during the internship with your manager. This should lead to your manager setting you up with a mentor or two that will help you accomplish your goals.
shalini’s Answer
I can relate to how you are feeling at the start of the software job.
As others have answered, yes its not new that we see the huge difference from how we did in university and at office.
Always remember that
1. As a software engineer we are bound to learn new technologies every-time.
This is the interesting field where we get to learn new items everyday so tackle your hurdle in the same enthusiastic way as u would have done in in your college.
2. Everyone around you, be it junior/senior will be doing the same so you are not alone in this journey :)
I will suggest that keep following the latest technical stacks in market briefly once a week at-least so that u have a grip of whats going around you and when you are asked to take-up the same u will not feel that its something greek and latin.
Also, try your hand in some small POC's with these techniques when u find time so that u always have practical knowledge to back you up..
All the very best !!
Michelle’s Answer
As a software development intern myself, I always put the emphasis during my internships on learning. Companies don't hire interns expecting them to already know everything in the field, they hire people who show potential and willingness to learn as they grow.
It definitely is a big jump from university computer science classes to working in a software development environment, and companies know that. Make sure you talk with your supervisor and team in your first few weeks so you can begin to learn how the team functions and also get an overview of the projects that they are currently working on.
I also like to take time at the beginning on a new internship to learn about the frameworks and languages that are being used on the projects. If the company doesn't have its own learning platform, I will either checkout some playlists on YouTube or find a course on a platform like Udemy. For me, internships are all about learning, so I try to take advantage of all the resources around me. Utilizing both online courses in software development areas and talking to my coworkers about their work and skill sets so that I can learn about what it actually is like to work on a software development team.
Once you are actually able to get started on working on a project, don't be afraid to ask questions to your team! Even when you've done an online course and familiarized yourself with a new language, you still won't know all the answers. Use the experience of the people around you to your advantage, they will be able to teach you skills that no online course ever will.
I hope this answer provides a bit of insight! Best of luck!
Arlene’s Answer
It is totally natural!
Believe me, you will get this feeling every time you venture into new projects or whenever you start work in a new company :)
Understand that enterprise projects took a while to build. It is probably built using different technologies where/when it is applicable depending on the objective that it tries to achieve. There might have also been different design approach and technical strategies that was considered in building these enterprise projects. So don't worry too much.
First thing first is to talk to your manager, he can give you a high level understanding of the enterprise project. Don't worry that you don't know much technical jargons (as an intern this is always acceptable). Ask your manager where you can start and which small area of the project you can focus. Always be attentive and willing to learn. Do a lot of research and don't be afraid to ask.
If you do well, you might even land a job in the company you have interned!
Good luck!
Tina’s Answer
It is also good to have some on job training if you can get during your college days. There are many courses available as well on internet that gives to near to office experience.
However dont worry this is pretty common and companies do not expect that a fresher should have knowledge of everything in the beginning. You increase your knowledge base as you start to work on actual scenarios.
Shubhankar’s Answer
Let me start by telling you that being overwhelmed looking at the tech stack available, it is natural... so don't worry too much.
Let me tell you 2 basic things that I learnt.
1. Technology and science continue to evolve and at a fairly fast pace
2. Learning never stops (Believe me I still am after spending 14 years in IT development)
Accept this as a challenge rather than worrying . I know the fear very well, I have felt it on numerous occasions. But you will get over it.
My recommendation to you would be focus on the fundamentals of programming (data structures, algorithm, performance, scalability etc) and projects.
Choose a technology from the stack that seems interesting to you and be comfortable with it.
If possible, learn a backend and a frontend tech.
This will help you understand any flow end to end.
Just keep an eye out on what is changing related to chosen technology and the buzz words.
Don't worry too much on what will happen in an enterprise environment, rather channelize this fear into sharpening yourself for upcoming challenges
Feel free to reach out if you still have any queries
All the best !!
Shubhankar recommends the following next steps:
Akash’s Answer
The topics taught in university prepare you with the basic concepts in many areas in computer science. However they lack depth and are mostly theoretically inclined. When one starts in production, the tools used take more of a center stage. Initially I felt overwhelmed as well with this.
As others have mentioned, first be clear on your priorities by having a conversation with your manager. At this level eventhough the expectations from a fresher joining as an intern is low, try your best. Look up online forums such as stack overflow for solutions, and make the the documentations and manuals your best friend. Take small steps and improve your solutions as you go. Have them reviewed by your peers and value their feedback. Try to gain understanding in basic concepts and constructs of programming and do not resort to copy-pasta when under a time pressure. Getting better will require time and patience, but eventually you will get there.
Hope this helps. Good luck!
Jon’s Answer
Most internships only expect a more limited scope of work for the intern. Internships are usually very targeted with some guardrails in place (i.e. a mentor provided, small scope of project, more limited set of technologies). That does not mean there won't be complexities and/or new technical challenges; there almost certainly will be... and that's a good thing, but it will grow you and your career!
Software development is about a certain mindset.. one that is 1) always welcoming of a challenge, 2) always embracing of new learnings, 3) always asking questions and 4) always encouraging you to be creative.
Approach your internship in this manner, build your network of peers you can learn from, engage your mentor on a regular basis... this is a wonderful career choice you've picked. It's ok to be nervous, but the fact that you are proactively asking the right questions means you are well suited to this career and already on your way to being successful!
Abhijeet’s Answer
For instance, if you love mobile gaming, you know Clash Royale. I started as an explorer for the world's first e-mobile game. If you are familiar with the game, you would realize that it is tremendously easy to get started but, notoriously hard to master. Over the course of 2 years with constant failures and success, I was able to finish the top 1000 in the US - a big feat for one playing their first mobile game.
With continuous involvement and learning from some of the best players, I realized the process of getting better at ANYTHING can be distilled down to:
- Get Familiar: Act Intentionally
- Seek Advice: Learn from established professionals in the role
- Fail Fast. Learn Quick: Don't follow a path because it "works" - challenge the status quo and understand the "why" behind the scene.
At the end of the day, if you compare human life and the growth of technology, a lot of the recent developments in the field of software engineering have happened in an incredibly short window of time. So, being intentional and keeping an open mind to pursue fields that match with your interest is the best way to proceed forward
Estelle’s Answer
Jill Eckhart
Jill’s Answer
Jill recommends the following next steps:
James Constantine Frangos
James Constantine’s Answer
Here's a friendly guide on how to kickstart your software development journey as a fresh intern:
Being a newbie in the software development field can be quite daunting, especially when you're thrown into the deep end with projects that are vastly different from what you've tackled in university. The tech stacks, development frameworks, and coding practices might seem like a whole new world, and it's okay to feel a bit lost. But remember, it's all part of the learning curve, and there are plenty of strategies to help you get a handle on things early in your career.
1. Love the learning: Software development is always changing, and there's an endless amount of knowledge to soak up. Take advantage of this chance to dive into new tech and frameworks, and never hesitate to ask questions. Your teammates and mentors are there to help, and there's a wealth of online resources and tutorials to tap into as well.
2. Back to basics: While exploring new tech is great, don't forget to firm up your understanding of the basics. Refresh your memory on programming fundamentals, data structures, and algorithms - they're the building blocks of software development. Mastering these will make it easier to pick up new tech and frameworks.
3. Practice makes perfect: The best way to learn software development is by doing. Take on small projects and code regularly. Start with easy projects and slowly work your way up to more complex ones. This will help build your confidence and skills, and you'll be ready to tackle bigger challenges.
4. Find a mentor: Look for a mentor who can guide you through the software development process and offer valuable insights and feedback. They can help you understand the company's development processes and tools, and give advice on how to tackle projects and solve problems.
5. Learn from others: Watch your colleagues and learn from their approach to software development. Notice how they solve problems and ask questions to understand their thought process. Online communities and forums are also great places to learn from other developers' experiences and solutions to common problems.
6. Patience is key: Learning software development is a journey, not a sprint. Be patient with yourself as you navigate through the learning process. If you stumble or struggle with certain concepts, don't be too hard on yourself. Everyone starts somewhere, and your willingness to learn and improve is what truly matters.
Starting your software development career can be a bit of a rollercoaster, but it's also an exciting chance to learn and grow. By loving the learning process, sticking to the basics, practicing regularly, finding a mentor, learning from others, and being patient, you'll be well on your way to overcoming the challenges of software development and carving out a successful career.
Here are some authoritative books that might help:
1. “Clean Code: A Handbook of Agile Software Craftsmanship” by Robert C. Martin
2. “The Pragmatic Programmer: From Journeyman to Master” by Andrew Hunt and David Thomas
3. “Code Complete: A Practical Handbook of Software Construction” by Steve McConnell
May you be blessed with success,
James Constantine.
Abhinav’s Answer
Software development an interesting and vast domain for one to explore. A few suggestions are as follows:
1. Learn to code and build knowledge about algorithms. You could watch lots of tutorial videos or take free online courses as well. Before this step, you might have to choose which particular domain you're more inclined towards - networking, front end, etc.
2. At the beginning of a career, you might not want to specialize. Please keep yourself open to considering different kinds of internships/apprenticeships in order to gain as much learning as possible. Once you reach the phase where you have abundant information, you could make a decision on what to specialize in.
3. Join online communities and work on your own projects. There're lots of online portals where people actively discuss their projects and look for teammates. This is usually a great opportunity to learn and build something from scratch. The learning is endless and it also adds a lot to your resume.
4. As a career professional in technology, people often overlook their soft skills. Please know that it's highly recommended to hone your soft skills as well, no matter how fast and robust code you write.
5. Continue to challenge yourself. For a software developer, upskilling is a never-ending process and that’s the best part. Please keep yourself open to embracing new technologies and learnings.
Ahana’s Answer
1.Look for opportunities which suits you.
2.Understand the basics and be ready to face challenges which comes by.
3.Opportunities and challenges which leads to exposure of our skills we imbibe.
4.Keep Learning and evolving in a continuous manner.
Rachel’s Answer
This is a very common feeling to have, and definitely not something you should worry about. Many entry level positions take this into account, and most managers are understanding that newer developers are not familiar with not only their business industry, but also the tech stacks they use.
I am a software developer who is a recent college graduate with just over a year working in industry. At my university, we learned nothing about web development, nothing about a CI/CD (Continuous Integration/Continuous Deployment) pipeline, or even just basic CSS. My studies primarily focused on algorithms and theory and rarely did I ever need to think about things like UI/UX or database architecture.
How you can best prepare yourself as an intern and later in your career is not never stop looking for things to learn, and be willing to learn on the job. Searching for opportunities in industry that interest you and help you grow in your career as well as being willing to take on challenges are some of the best things you can be doing.
Hope this helps!
Rachel
Mahesh’s Answer
1. It is very natural to have the feeling that you have mentioned.
2. Develop skills to understand end-end of a project. You may have expertise in one programming language OR one area but it is very important to understand how other sub-systems work/interact along with the module that you are working on. For a customer, it is the whole software matters and not an individual module OR a program. Be open to go outside of your comfort zone and involve in other modules as well.
3. In the Enterprise projects, it is very important to understand the problem in detail of the end user OR customer that you are trying to solve. This will help in making decisions w.r.t design and technology as well. Just by using latest technologies will not solve the problems for customers.
Sourav’s Answer
All the best.
Thanks.
Delete Comment
Flag Comment
Delete Comment
Flag Comment