What you always wanted to know about life as a professional software developer but were too afraid to ask.
Koç University Presentation Who I am My name is Burç Şahinoğlu and I work at Tikle My contact info: burc.sahinoglu@tikle.com (prefered) +90 212 285 1214 Everything I am going to say is completely subjective and is the only truth 30.04.2008 Koç University Presentation
Koç University Presentation Communcation Rules Always = Most of the time Never = Nearly Never Don’t = Think before you do Do = Have a good justification if you don’t 30.04.2008 Koç University Presentation
Koç University Presentation Introduction Professional software development is hard, VERY HARD. It is part science, part engineering and part art. 30.04.2008 Koç University Presentation
Why what you study is important Programming is not software development: everyone can program (and that’s a problem.) You are at school to learn some of the science, some of the engineering… so that you can develop you art with that knowlege 30.04.2008 Koç University Presentation
Koç University Presentation Learn the Hard Stuff Study the “hard” stuff, the easy stuff you can learn on your own Learn functional programming (scheme, ML) learn C/C++ (memory allocation,) understand algorithmic, understand the principles of programming languages (write a compiler / interpreter) Also understand and learn databases, you will probably use them a lot. 30.04.2008 Koç University Presentation
Koç University Presentation Looking for a Job Find a job with a technology company Money should not be your primary concern, titles even less (keep your ego in check!) Don’t take the first job offer (unless you are really stuck) 30.04.2008 Koç University Presentation
What are your options in Turkey? There are MANY software development companies in Turkey. How to look for one? Ask your professors Visit any “teknokent” around Ask family and friends Maybe get in touch with TÜBİTAK, or do search with the patent office 30.04.2008 Koç University Presentation
Koç University Presentation Interviewing with us My interviews take anywhere between 2 to 4 hours, be ready to battle! What do I look for when I hire someone? Smarts, Passion, Learning Capability, Curiosity and Flexibility 30.04.2008 Koç University Presentation
Koç University Presentation Your career Career paths: Become a guru if you are good, become a manager otherwise (I have become a manager ) You don’t have to get into management It is your responsibility to make your job challenging! (Tea Ceremony!) 30.04.2008 Koç University Presentation
Koç University Presentation Life as a Programmer You will have fun. You will learn every day. You will build things. You will be challenged. You will feel rewarded. You will work hard. You will work a lot. You will have sleepless nights. You will be frustrated… 30.04.2008 Koç University Presentation
Koç University Presentation Programming %80 of the features will take %20 of the time, the rest of the %20 features will take another %180 You will have to read, understand and maintain someone else code You will need to debug a lot Someone else will have to maintain your code, be nice to him. Don’t re-write code 30.04.2008 Koç University Presentation
Koç University Presentation Debugging If debugging is the art of removing bugs, then programming must be the art of inserting them 30.04.2008 Koç University Presentation
Koç University Presentation Working in Teams Learn source control, check-in often, don’t break builds. Someone else’s code is not poorly written, it is just that you don’t think like that person. Explain your code to your friend regularly (aka Code Review) 30.04.2008 Koç University Presentation
Koç University Presentation Life in General Don’t be afraid to take chances and don’t accept status quo. Know what you are good at (what you like doing) and what you are not good at (what you don’t like doing.) Don’t do things because they are trendy, but because they make sense to you. Be passionate or don’t expect much 30.04.2008 Koç University Presentation
Practical Recommendation Think of write code, just like “regular writing” and ask yourselves this: Would you write an essay without thinking about its outline? Are short sentences usually clearer and with less errors than long ones? Would you give a first draft of a paper to your profesor? How does this apply? Think about how you are going to solve your problem? Prepare an outline (architecture, class diagram, algorithms) but don’t go too far it is a waste of time unless you are super brilliant, which you probably are not (and I am not either.) Keep you code as short as possible Keep re-writing (fancy name ”refactoring”) i.e. when something does not fit well with your first outline, change it. 30.04.2008 Koç University Presentation
Koç University Presentation Challenge Yourself Why is the sky blue? Learn something new often Exercise How garbage collection works and how you would implement it? (Interview question.) What are databases indices and how you would implement them? (Interview question.) Learn a new programming language every year. 30.04.2008 Koç University Presentation
Koç University Presentation Working in the abroad The easiest way to get there: enter a graduate program abroad. Show your talents and knowledge in forums; you never know who is reading them. Participate in interesting, challenging open source projects. 30.04.2008 Koç University Presentation
Koç University Presentation Closing Thoughts The trouble with the world is that the stupid are cocksure and the intelligent are full of doubt. —Bertrand Russell The greatest obstacle to discovery is not ignorance, but the illusion of knowledge. —Daniel Boorstin 30.04.2008 Koç University Presentation
BE HAPPY !