In CS Internship we mostly focus on "Soft Skills". In fact the whole process of learning a new technology is just a tool to train these soft skills during the process. The list of soft skills we are working on is:
- Integrity, Integrity, Integrity!
- Dare to estimate, reasonable estimations
- Dare to ask questions, Dare to answer
- The ability to share themselves on social networks
- Presentatoin skills: The skill of presenting themselves to the audience
- Understanding remote working communication tools
- Understanding the process of remote team-working: Sprints, Boards, ...
Integrity is a core value for us. We learn how integrity works in our life and career. The integrity model we are using is based on Werner Erhard and Michael Jensen's model of integrity. There's a lot to study on (SSRN)[https://papers.ssrn.com/sol3/papers.cfm?abstract_id=1511274] We practice integrity everyday in every aspect of our work and our program is designed in a way so the interns can practice it in lots of situations.
We practice estimation skills by creating on these situations:
- Intern should estimate (and a promise on it) for each step.
We practice asking skills by creating on these situations:
- Running Step 0. In this step intern should contact everyone in the club to get familiar with them and make it easy to ask questions.
- Some tasks within steps so intern should ask something in StackOverflow
We practice answering skills by creating on these situations:
- While in the club, other poeple will contact the intern asking some questions.
- Some tasks within steps so intern should answer something in StackOverflow.
As a mandatory phase of each step, interns should present their achievements through a Twitch presenation.
To pass each step, interns must share their "leanred lessons", "achievements" and "feelings" on Twitter and LinkedIn.
Other than the language and technology itself, we are working on these technical skills:
- Design: Designing solutions
- Software Architecture: Maintablity, Testability, Extendability, Reusability, Readability
- Test: The philosophy of quality and test, Test Driven Development
- Performance: Data structures, algorithms, patterns and performance tunning tools
- Debugging: The various debugging utilities