Skip to main content

Software Engineering Vs Programming



When I was growing up,  Software Engineer and Programmer seems same term to me.

Now after working a couple of years as a Software Engineer I think I can distinguish between the two terms. 

Programming is a small part of Software Engineering. 

Software Engineering include


  • Understanding Requirement 

  • Designing Software

  • Organising code 

  • Testing Software 

  • Collaborating with other software engineers


Writing good code is essential skill for being a Good software engineer but you can not neglect others skills as they are equally important for building good product.

I read something similar in Software Engineering subject during my graduation, but none of the above make sense than. I think reading about software engineering is not the great way to learn about it instead build a lots of software and you will get a grasp of software engineering.

What text books do not tell you about Software Engineering is :


Understanding Requirement:


  • Understanding requirement is easy but always keep in mind that its going to change in future.
  • Question everything, until it make sense to you.

Designing Software & Organising Code:


People don't pay much attention about organising code when writing software but its not healthy for software health. When Software grows old, non-organised software is difficult to take care off.

Keep It Simple  

To check if you are doing it right, think with perspective of a person who does not know anything about your software. Now if you can still navigate through the software without anyone's help than you are doing it right else you need to step back and make your software simple enough to be understood by all.


Testing Software:


Nobody can teach you the importance of testing until you realise it and it may be too late when you realise its importance, therefore its important to learn from the mistakes of others.

Like all other engineering department , software engineering is also about building product. Civil engineer design bridges, buildings and then act upon and make it happen. Similarly we design software and write code to make it happen. But the main difference is the change in requirement we get every now and than. People take it for granted that changes in software is not a big deal.

If your software is not automated tested than your software will surely break in future with all the inevitable change in requirements coming.

Collaborating with other software engineers:


Text books don't tell you that you will be working with other people on same software. Collaborating with others is essential and you can not run away from it. Collaboration helps deliver better product if people working together are passionate about the product.

Its always better to have different opinions and healthy discussion on possible solutions.




To all Software Engineer out there, lets collaborate and make something awesome. cheers :) 

Comments

Popular posts from this blog

Resolve OpenSSL::SSL::SSLError on Yosemite

If you are using rvm installed ruby on Yosemite  OSX  and getting error : OpenSSL::SSL::SSLError: SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed then reinstalling ruby with ` --disable-binary` may fix this Issue. rvm reinstall 2.1.2 --disable-binary  Reason: Ruby installed with packaged binary in rvm has OpenSSL path: /etc/openssl  Path of installed openssl is :  /usr/local/etc/openssl To check openssl directory: > irb > require 'openssl' > "SSL_CERT_DIR: %s" % OpenSSL::X509::DEFAULT_CERT_DIR

Generating preview for pdf and images using Carrierwave in Rails

This blog post will cover how to generate the preview of pdf files using Carrierwave gem. Carrierwave gem has an inbuilt " manipulate! " method which reads the file and loops over every page.  This " manipulate! " method works as expected for a pdf having 300-400 pages but when I uploaded a pdf having 1000+ pages my machine crashed!!! That is when I started debugging the code and found out that there is an issue with the manipulate method. Here is my original code. class MyUploader < CarrierWave :: Uploader :: Base include CarrierWave :: RMagick def cover manipulate ! do | frame , index | frame if index . zero ? # take only the first page of the file end end version : preview do process : cover process : resize_to_fit => [ 310 , 438 ] process : convert => : jpg def full_filename ( for_file = model . source . file ) super . chomp ( File . extname ( super )) + '.jpg'

Letter To Ruby Conf India Organisers

Disclaimer : This article consist of my brutally honest review about Ruby Conf India 2015, If you are prone to depression, heart attack while reading criticism, please STOP reading this letter now  and move on. I know organizers worked hard to organize this event and I thank you for that but this does not mean I am happy with the way it was organised. I have complaints, so do lots of people I know. Someone has to raise voice, for now I am taking this responsibility. 1. Why Discriminate ? I was given accommodation in Justa-panjim while most of the conf attendees were in Cidade-goa, those two hotel are incomparable. Justa-panjim didn't have enough water for bathing, forget about swimming pool, beach. I didn't had complained if everyone was given accommodation in Justa-panjim, Yes I am being jealous here..!!! I paid conf fees(lite tickets.. yes thats how early I booked my ticket.) and I deserve to be treated equally , why discriminate ? 2. Where's Ruby ? In some o