140 likes | 153 Views
This article provides advice to fresh computer science graduates and post-graduates on how to navigate industry software development jobs. It discusses the importance of transitioning from prototype to production quality orientation, acquiring production quality orientation quickly, utilizing self-learning time effectively, learning coding and design standards, understanding testing techniques, and making a good first impression in the job.
E N D
Advice to Fresh Comp. Sc. Graduates & Post-Graduates On Industry Software Development Jobs Prototype Quality Orientation To Production Quality Orientation
Changing Orientation • BTW Objective is not to scare you! • Just a matter of exposure. Academic training gives more exposure on theory and sometimes research but less on production quality software engineering. • Experience in industry will give the production quality orientation. • But can one acquire production quality orientation quickly? • If so, How?
Understand & Accept • Understand and accept that current skill set you have is prototype software oriented • But don’t just accept my word for it! • Check with seniors about quality of software engineering (I don’t mean Q.A.) in software industry vis-à-vis work done in your final year project
Company Training • (Indian) Software Consultancy Majors • 3 month training • May give some level of production orientation. • Product development companies/in-house software development departments • Typically, no formal training • Self-learning time usually given.
Self-Learning Time • Utilize Self-learning time effectively. Don’t take it easy. Don’t treat it as paid time-pass. Don’t wait for instructions. Be self-motivated. • Work very hard in beginning stages • Treat it as a period of on-the-job learning of rigorous software engineering • Study code of software or software module that you will be working on • Learn from that code – Existing code can be a very great teacher
Coding, Design • Read coding standards/conventions/style documents followed by group/company. • First learn code related aspects of production quality software engineering • Then learn design related aspects. • Study and learn from design documents of software you have to handle – once again, they can be very good teachers. • Study design standards/conventions followed by group/company
Testing, Eye for Detail • Understand testing techniques used in your group. • If test cases have been documented for your software then study it thoroughly. • A key differentiator between prototype quality and production quality is level of detail/depth. • Delve into the depths of code, design and testing of software you will be working on.
Documentation • Study documentation standards/conventions of group/company • Study documentation given in/about the software you will be working on.
First Programming Task • Treat first programming task in your first company as a major milestone in your career. • Work really hard on it. Don’t be afraid of being labeled as a workaholic • Try to apply what you have learnt from study of existing software – code style, design, testing. • If possible, consult with seniors about your approach
First Programming Task … • Give highest importance to testing. Ensure that serious bugs are detected and fixed. • Stick to deadline – may conflict with some of the earlier points – Have to compromise • Document your work in accordance with what has been previously done in your software. • Treat the job as complete only after rigorous testing and documentation have been done.
First Impression • First programming task makes the first real impression on project manager/other management • If you do well you might be given the more challenging and more exciting work – Good growth possibilities • If you mess it up, it may require a lot of time to undo the first impression. Meanwhile you may be given unimportant and boring work – Less growth possibilities
Danger of Complacency • If you do not realize that industry requires higher quality of software engineering: • You may take it easy during self-learning period. • You may do your programming tasks with prototype level of quality • Your programs could be buggy • You could land up with less exciting work and a slow growth path
But My Input Could be Wrong • You may just be LUCKY. • OR you could be having very high quality software engineering skills right now itself. • You may get very exciting work and be able to handle it without really trying to improve your software engineering skills • Check with your seniors about my input and then decide whether to follow it or not.
All the Best • Hope I did not scare you! • That is not the objective (as I said earlier) • Objective is to expose you to the reality of software development jobs in the industry • That can help you be prepared for your first job and make the best of it. • All the very best wishes for your first software development industry job!