11 answers

How to approach software development early on in career?

21
100% of 16 Pros
100% of 1 Students
Asked Viewed 238 times Translate

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

Hello Dinesh, I am actually in this situation right now as a Java Developer intern. When I first started, I felt overwhelmed with new information that did not correspond with the school setting. Now, I know that internships are all about learning and getting a taste for the field. You will be assigned projects, but you will not be alone. You will have a manager, possibly an internship mentor, and your whole team to reach out to for help! In addition, have fun during the internship and do not stress out. I have had my days where things do not make sense but ask questions because like I said before, this is a learning experience! The internship is there to gradually transition you from the basics you learned in the University to how it applies in real work life! Hope this helps! Jason P. Translate
21
100% of 16 Pros
100% of 1 Students

11 answers

Storme’s Answer

11
100% of 7 Pros
100% of 1 Students
Updated Translate
Hi Dinesh, your question really made me reflect back on my time when I was intern. I 100% felt the same way as you did in terms of feeling like there was so much to learn, and really feeling the difference between enterprise and university work. Luckily, this is very normal. Most companies will not expect their interns to be proficient in their tech stack, or even have any experience in their given tech stack. Most of the tools you will use in your career will not be taught at University. That was my experience as an intern, along with being a mentor for several other interns later in my career.

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.
Hi Storme, thank you so much for such a candid answer. It's good to know that I am in a natural process of development. As you said, conversing with Manager is very important and I did mention to him about my current expertise and also about my goals . He is very good in a sense that the tasks he assigns to me are not too technical yet the senior developer are communicating what I should learn next to start contributing to feature development in future. I hope that is the right way to approach things. Dinesh P. Translate
I would also like to ask you one specific question about single page web application. I come from MVC background where backend and frontend templates were tied together on a single server. With SPA, we have React, which runs on a different server than backend. I have a fairly good idea of how to interact with backend and populate data to state using redux thunk. But , I was wondering how to secure authentication especially if we containerize application and then we just can't use simple cookies to keep sessions. I hope you can guide me through this or direct me to resources which provide deep information on these concepts. Dinesh P. Translate
From what you listed in your first comment, you are doing what you should be doing. The senior developer you are working with should slowly be building you up with the tasks being assigned to you. There is no 100% correct answer for your second question. There are so many way to do proper authentication, that it is really up to you, and sometimes it can all be layered on top of each other. My go to is always token authentication or OAuth, but those may not suit your given situation. This source is a great intro to some different authentication methods, but you will need to dive deeper into each one: https://blog.restcase.com/4-most-used-rest-api-authentication-methods/ Storme Briscoe Translate
11
100% of 7 Pros
100% of 1 Students

Arlene’s Answer

3
100% of 1 Students
Updated Translate
Hi Dinesh,

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!





Things you mentioned are exactly the ones I faced especially in the initial weeks. As you said, I am focusing on understanding the code and learning the tech stack especially since the senior devs themselves asked me to learn specific technologies. I hope to quickly jump onto stuff and start contributing. Definitely, my goal now is to get full time offer since I really like the team I am in and the devs themselves have so much experience to share with me. Dinesh P. Translate
3
100% of 1 Students

Tina’s Answer

2
100% of 1 Students
Updated Translate
It is not an uncommon thing to see difference in university projects and actual work in the companies. Prepare to unlearn yourself and accept any new coding language , job profile.

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.
Thank you Tina ! Really appreciate all the feedback I am getting. I think the remote setting and Covid did impact my internship experience but again I am still learning with the tasks assigned to me. I realize its natural to feel a bit scared of all the new stuff . Dinesh P. Translate
2
100% of 1 Students

shalini’s Answer

2
100% of 1 Pros
100% of 1 Students
Updated Translate
Hi Dinesh,

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 !!
Thank you Shalini. I think your suggestion of keeping track of latest trends actually makes sense because I do see my company making use of latest tech stacks. Since everything is changing so fast the only option is to just keep on learning . I will definitely follow your guidelines . Thanks for the reassurance :) Dinesh P. Translate
2
100% of 1 Pros
100% of 1 Students

Shubhankar’s Answer

1
100% of 1 Pros
Updated Translate
Hi Dinesh,

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:

  • Strengthen fundamentals of programming like data structures, algorithms, performance analysis and improvement.
  • Choose technologies or frameworks of interest and improve proficiency in them
Thank you so much Shubhankar. I am happy to know that I am doing the right things. Currently , I am spending time on learning react-redux based webapps. I also hope to learn spring before end of this year. I actually love learning new stuff , makes me feel so empowered once you get the hang of it. I would love connect with you for future guidance as well ! Regards Dinesh Dinesh P. Translate
1
100% of 1 Pros

Michelle’s Answer

1
100% of 1 Pros
Updated Translate
Hi Dinesh,

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!
1
100% of 1 Pros

Ahana’s Answer

0
Updated Translate
My take on this question which is mentioned: -

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.
0

Jill’s Answer

0
Updated Translate
Don't be discouraged! As everyone has said, encountering new tech stacks is common in the tech industry, even for people who have worked in the industry for a long time. One advantage that enterprise software has is that many companies exist to customize or sell the products, so there is a lot of information to be found on these sorts of products.

Jill recommends the following next steps:

  • Companies frequently make training or explanatory videos and post them on YouTube. I would suggest searching YouTube and seeing if you can get some quick overviews of the products you are working on, or even their competitors.
  • Search LinkedIn for the products you are working on. You may find people who blog about the tech or make webinars.
0

Akash’s Answer

0
Updated Translate
Hi Dinesh,

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!
0

Abhinav’s Answer

0
Updated Translate

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.
0

Mahesh’s Answer

0
Updated Translate
My thoughts on this question are as mentioned below:

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.
0