📝Criteria change in software development
Vastly different criteria are applied in different areas of programming:
programming contests
depending on the level of a contest, may require either basic knowledge of programming (ifs and loops) + very basic mathematics, or sophisticated algorithms and data structures and problem solving (of course, it’s not binary but rather a spectrum)
you never code longer than one day. your code is read-never
writing fast is more important than reading. You use macros to short-cut typing
there is no-one to ask for help
university
?
job
job applies a completely different criteria. Depending on the area, you likely don’t need data structures and algorithms.
you work in a team
most often than not, team members can help you find a solution
size of projects is noticeably bigger
readability becomes important
estimating
technical debt
deadlines
levels. even on the job, the criteria change depending on the level
juniors are expected to know the language
middle level developers are expected to know “best practices,” patterns, etc.
senior developers are expected to have a very broad and deep understanding of programming and selected technology. They should also be good at working in a team, teaching other developers, etc.
as you grow, you also change roles. they all require different skills
coder
tead lead
architect
manager