hi.
im programming about 7 years and in these years as i searched there are lots of programming skills. i found some of them really important and some of them not in practice. i list some of the below.
as i live in iran and almost worked on teams with lower level of working and production and im looking for some application from studios outside of iran i need to know what are main abilities that are expected from a programmer(specially game-play and AI).
1) design patterns(some of the are important such as singleton mvc observer and? and some are not. am i right?)
2) unit testing: its important to run tests without running whole project but what about TDD? as i read its important to work whole project based on tests but i never tested as i think its too slow.
3) software architecture: its not expected from a programmer but seems some knowledge is good.
4) VCS: is it just about git or some other important things to learn?
5)dependency injection: its a big field but i have some knowledge on it and its frameworks like ninject and zenject. that is enough?
6) complete knowledge on needed language. i think i know everything and c# and Unity as i made everything with these tools.
7) scrum development: .....
8)base software knowledge like algorithm and data structures
9) portfolio: should i have worked on big projects or .... to be able to be hired on important companies or studios?
10) math. i have good knowledge on vector and linear algebra and basic calculus and i think i can do anything by searching in internet. that is enough?
i think there are some other important knowledges like optimization, software working process and....(dont know)
i need to know what are most important and must programming skills that i may have not.
thank you for answering