How to be a Senior Junior Software Engineer? (part 2)

sedhossein
5 min readMar 25, 2020

Part 1, Talk about basics. In this part, I have prepared the list of important questions/answers for beginning work seriously.

The talk is cheap, show me the code.

so let’s go …

1. What do you need to learn?

Some technologies are necessary for each programmer to learn:

  • Basic Programming Knowledge(network, algorithm, database, …)
  • Source Control(git)
  • IDEs(work professional with one of them)
  • REGEXs
  • Soft Skills

And other skills depend on you.

For back-end developers, at least one server-side language(for beginning Python or PHP recommended) is required and deeper knowledge in network, algorithms, database is necessary.

For front-end developers, HTML, CSS, Javascript with at least one framework between(Vue, React, Angular) is required.

For mobile developers learning Java or ReactNative can be helpful.

Although it’s not enough, it’s good to start.

2. How much can I grow?

There is no limitation of growth for anyone. It depends on your diligence.

3. How are the job prospects?

Nowadays, all sellers, companies, universities, schools, and jobs need a site, an application, or a technical issue. Therefore it can be both good and bad for software engineers. It can be good because too many demands exist, so lots of choices exist too! It can be bad because high demands need more personnel, so its consequences should be controlled.

4. What’s the best time to start work?

In my opinion, as soon as possible!

5. Which language is better to start?

To start programming, don’t worry about the languages. Focus on your work and learning. All languages have a lot of concepts in common and by learning one of them deeply and perfectly, you can learn your next languages much easier.

6. The Xlang is better or Ylang?

This is the exact hell, Stay away. Avoid this shit. Each language has exclusive usages and all of them can be good or bad for some situations.

7. Do I have to learn all of the programming languages?

A software engineer is not a person who learns all programming languages, He/She is someone who knows how to learn new things and use tools right.

8. What are the best practices to learn new programming languages?

I always learn languages with the following tricks:

  • Solve some challenges from HackerRank with a new language
  • Try to see all of the syntaxes and concepts in language with a famous tutorial
  • Maybe watch a video for parts that I need more details and practices to understand them
  • Write simple new project + Reading documents more accurately

9. How can I find out learning a language is good or not?

Before learning, Set your purpose to learn it; Then find usages for that, It’s so easy! But talk and consult about your purposes and interests with senior guys.

10. How many languages could be learned before going to work?

The number of languages may be important in some situations, but it’s not important for the first work experience that much. For getting the first job it’s enough to search occupation sites and see their required parameters for juniors and interns positions.

11. The academic/internet exercises are so easy or irrelevant to the real world! Are they useful?

At first, maybe it seems right, but the real-world challenges are like exercises. Besides exercises come from real-world challenges, they can be so useful in the near future for you.

12. How much is good as juniors’ salary?

Money is one of the most important things in the world! But but but …

Never ever think about money at the start of work. Just try to learn and join active and good teams. A good manager is an important parameter. Find a good manager for yourself!

13. Where is the good point to start? A big company or a small one? Friends or freelancing?

In small companies, you can learn more, cause the big organizations have a lot of layers and you can learn and know about just special parts of business and work. In small startups, you can earn a lot of special experiences from A-Z. It’s hard to get an absolute answer, but the size of a company is not the target. Learning quality is more important and it depends on your team and your offers. A generous team is a real blessing :))

14. How can I challenge myself in technical concepts?

Read others’ articles to understand your ignorance. Try different interviews and deal with HackerRank to examine yourself.

15. How is an internship? Can it be effective?

I think it’s the best valid option to start your professional work life. choose your internship place intelligently. Focus on learning and learning.

16. What are the company’s expectancies from us?

Work with no technical debts! Do your tasks completely and do your best. Work enough, not more or less than standard working time.

Be honest always. Before being a technical guy, you are a human. so don’t forget soft skills!

17. Is university important for a developer?

To become a developer that only can code, in other words, be a coder, No; but to be a software engineer that can solve problems, challenges, and engineering, Yes! It’s necessary and important. University shows you a lot of other ways that exist and learn many things about the computer world.

18. What are the computer engineer branches for work?

  • Software developers, applications(mobile, web, …)
  • Computer network support specialists
  • Network & computer system admins
  • Computer hardware engineers
  • Software developers, systems software
  • Computer network architects
  • Data Scientist/Engineer
  • AI
  • IoT
  • Security

19. Should I know everything about a programming language before going to work?

Omm, Almost nobody can say I know everything about a language, it’s not really necessary, the problem-solving ability is important to solve new problems every day. but having deep knowledge about language and knowing how it works, help you to know many things about a language.

20. How long should I stay as a junior? And when can I be a mid-level?

The level of engineers is one of the hardest things to talk about. Work experience is not a single parameter to label people. The quality of work is so important! I know some guys have 15 years of work experience but they are not seniors really, even sometimes they can’t be powerful like mid-level guys, and know some fresh young guys with 3–5 work experience who are so literate and so powerful in solving challenges and problems. Time is not the only parameter for this comparison. Working with good quality, learning new technologies, following the news, and learning continuously, certainly makes your level up.

Some Recommendations:

  1. Create an account in Github and be active in the open-source world.
  2. You can find every technical tutorial here
  3. Solve some challenges in your free time. HakerRank
  4. Another good source for learning is FreeCodeCamp

P.S: I hope this article could help you.

--

--