SIGN UP MEMBER LOGIN:    
ARTICLE

Filling The Gap Between The Academic Life And The Professional Life

Posted by Tamer Khalil Articles | Articles C# March 13, 2011
Here you will learn how to fill the gap between the Academic Life and the Professional Life.
Reader Level:

Everyone working in the Software Development field has felt the gap between the academic life and the market. It is easy to find a PROGRAMMER but it is not easy to find a Software Engineer. When a new graduate enters the market he/she takes time to understand the importance of following a process, because they had challenged themselves at the code level (I don't say that it is not important), but they did not focus on the higher level which is the process of building quality software.  Most of the professors (if not all of them) and academic institutions do not give any importance to the software process, which outputs a graduate with allmost no knowledge of why a process should be applied, why we document our work, why do we have a requirements document.

Most of the computer science fresh graduates when they get employed and they start working on a project they have a question "when I will start coding?". Here comes the struggle with the employers who are applying a process (or at least have a requirements document). The struggle is to convince the new graduate that he/she should follow the process, and they should follow the requirements document without adding their artistic touches.  Another problem is that recent graduates almost have zero knowledge of the costs of producing a software, and that any extra day over the schedule can be costly.

I want to share my experience when I was an undergraduate, and when I entered the market. I was lucky that I was instructed throughout the four years I spent in my university by a professor who insisted to teach us how to apply a process in even the smallest programs we did. In the first two years (the courses were introduction to programming and Data Structures), she used to teach us the top down design method by defining our problem and defining our inputs, processing and outputs before writing any code. She taught us that we should have coding standards, and how to document our final work. (By the way no assignment was accepted without meeting these things). Through the other courses we were automatically applying this method in our assignments and project. In the third year, I took with her software engineering, and I was the luckiest person because I believe this is what really matters for me in the market, it was easy for us to cope with understanding different software processes and why we are using them. We applied it in a mini project for the course, and then in the graduation project.  We learned how to choose a process according the type of project with taking into consideration several constraints including time and money .

Login to add your contents and source code to this article
Article Extensions
Contents added by Mahesh Chand on Mar 14, 2011
To add more ..

I agree!

I finished my Master's degree in 1997. Among total 25 subjects (courses), here is a list of the courses that I think are still useful today.

  • Data Structures
  • Graphics Programming
  • Microprocessors
  • Operating Systems
  • Compiler Design
  • Programming Languages - C, C++, Pascal, Basic, Turbo C, Debug, DOS, Ada, Fortran, Lisp
  • Artificial Intelligence
  • System Analysis and Design
  • Software Engineering
  • Parallel Processing
  • Personnel Management
I might have missed a few more programming languages, but you can see, I did learn a lot of programming languages. And I recall, my first object oriented programming language as Pascal and I did not pass the test first time. I had to try again next semester.

Cheers!


share this article :
post comment
 

This is very interesing. I believe you that everying you say is accurate and I agree with everything. If it is all true, then that is disgusting. Knowledge of system design, the software lifecycle and related material should be the primary subject of software engineering. A few elite programmers will have the opportunity to jump right into development of new systems but I assume that most junior programmers will start as maintenance programmers. Skills such as interviewing users and estimating the time needed for a project are important. George Bernard Shaw said "He who can, does. He who cannot, teaches.". It appears that software engineering is an example of that.

Posted by Sam Hobbs Mar 14, 2011
Become a Sponsor
PREMIUM SPONSORS
  • Finally – a virtual platform that delivers next-generation Windows Server 2008 Hyper-V virtualization technology from a managed hosting partner you can truly depend on. Visit www.maximumasp.com/max for a FREE 30 day trial. Hurry offer ends soon. Climb aboard the MaxV platform and take advantage of High Availability, Intelligent Monitoring, Recurrent Backups, and Scalability – with no hassle or hidden fees. As a managed hosting partner focused solely on Microsoft technologies since 2000, MaximumASP is uniquely qualified to provide the superior support that our business is built on. Unparalleled expertise with Microsoft technologies lead to working directly with Microsoft as first to offer IIS 7 and SQL 2008 betas in a hosted environment; partnering in the Go Live Program for Hyper-V; and product co-launches built on WS 2008 with Hyper-V technology.
    Get 2 Months Free of ASP.NET Hosting for Only $4.95/month! Receive FREE MS SQL and MySQL Databases Including ASP.NET 4/3.5, MVC 3.0, Silverlight 4, Windows 2008/IIS 7.0 Plus FREE IIS 7 Modules. Host UNLIMITED ASP.NET Web Sites - Click Here!
Nevron Gauge for SharePoint
Become a Sponsor