Here are a few things that I do as a developer and are difficult to explain to a novice programmer or someone who has no programming experience.
I Copy and Paste Code
The good thing about my work environment is that we have people from different fields of engineering. We hang out together, eat together and sometimes fight together.
One day I was looking at StackOverflow for a programming problem and one of my colleague from different field of engineering caught me red-handed and told everybody else about how I was reading someone else code on StackOverflow and how I will copy that code in my APP.
Now, my friends think that I copy every line of code from the internet and produce the software by just writing my name on it. \:(.
Many times, I mean many times, I tried to defend my position and always end up in a more miserable situation. They think I am trying to hide my own deficiencies. I can see the smiles on their faces when I tried to defend myself.
Even though there are forums where people put every single bit of information about electronics engineering, telecom and even mechanical engineering. For example, circuit diagrams to PCB designs for various products are available in the fields of electronics. Also, VHDL/Verilog code is available for many communication products.
People from other fields also copy from these internet forums but software development is getting a bad name.
Here is my defense. First one is logical and backed by scientific research.
There is a difference in running a copied code as it is and tweaking it to your requirement. It is not copy paste if you understand what the code is doing and how it is doing.
Also, watch this video of TED on idea have sex. Here the speaker explains how the world has grown upon the works of other people.
But you know these trollers are not rational and logical so I have some mantras that you should repeat often when you see these trolls:
“Don’t worry even Steve Jobs and Bill gates have copied. There is even a movie about them and it is called ‘Pirates of the Silicon Valley’ “
If it does not inspire you then get this one:
”Good artist copy and great artist steal”- Picasso
If you are still in doubt and wanna get more inspiration then send me an email.
My Code Does not Compile the Very First Time
Some of my friends fantasize about a superman developer. They tell me stories about a person who has 20+ years of experience. Once he wrote the code for interfacing two systems, that code compiles at the first attempt. Not only that it ran perfectly at the first attempt and is happily running since.
I don’t know the authenticity of this story because I have not met that superman developer. Also, I have not found such person till now even after watching interviews of developers from Google and Microsoft. If you find one then please tell me about it here.
Secondly, I tried this myself. It can work for smaller programs like 10-20 lines code but It will not work if you write 1000s or more lines of code.
I believe people are inspired by movies: watching software engineers churning code out in a single sitting OR cracking locker’s and hacking banks from their laptop in minutes.
Outside people (like my mom) started to believe that programming is some kind of a heroic job where one programmer is sitting and writing 100s of lines of code in 1 hour.
But you know the secret: real programming is cumbersome. It will suck out the blood from you when there is a bug. It’s not like you write code and it goes straight into production. In actual, you write code, document the code, test it, other people review it and when it is bug-free then it goes into production.
So to motivate you here is a famous quote that I gather from the writer’s community:
“Only GOD can produce the first version of their DRAFT as perfect. Rest of us needs editing.”
Programming productivity is not about the number of lines that you produce — also the name of this blog–but it is about the quality of the code that you produce. As a junior developer don’t get obsessed with the no lines of code that you can produce in one day. Take your time because best of us produce way less code but that code does the job flawlessly.
I Can’t Memorize Syntax
Once I was standing outside the pharmacy with my friends. One of my friends said that a doctor’s job is very difficult. I asked why. He said, look at this pharmacy there are thousands of medicines and a doctor has to remember all these medicine’s names.
I gave him a deep stare and told that this is not the job of a doctor. I told him about the formulation of a medicine and told him that there a number of brands who develop medicines for one formula. These doctors just know about the formula and they can look up the brands.
People need a sense of heroism in everything. Their expectations make me feel guilty when I look up syntax or a method signature. Why? Because with years of experience they expect that you remember everything.
But programming is not a dictionary job. Therefore, I don’t waste time trying to remember the syntax of language or signature of library methods. There is an exception to these rule: Rote learn syntax or signature when going for a programming interview or test.
And here is a famous Quote that caters to this problem:
“Never memorize something that you can look up”- Albert Einstien
I Can’t Show my Output
Unlike me, my brother is a web developer and when my mother asked him what he does:
He said:
“Oh here is the website that I developed recently”
Her response: “Oh websites, Yeah I know about that!”
Can you see the admiration that my brother is getting?
And when she asked me what I do as a software developer I went blank… I can tell her about the products our company has produced but what is my part is a bit tricky. What should I say to her?
I tried this:
“I write the code for interfacing acquisition and processing module”
The expression on my mother face is “What is interfacing!”
I said, “hmmmm ………. (more technical definition)…….hmmmm”.
The result: Now she rarely ask about the work that I do.
Developers are creators. They create software and every creator want to show his/her creation and crave admiration. This is important when you are junior because admiration will keep you motivated and help you in learning advanced programming skills.
Now, what you do if you can’t show your output like a web developer or a graphics designer. You know these graphics designers they have portfolios where they showcase their previous work. But you are a programmer and you have nothing to show off because you are sitting in a cave and writing a library that will be used by million other developers. What to do?
I have one suggestion that will create your portfolio in a very short time.
Write a short 2 or 3-page report about the work that you have done. Include the snapshot of the code that you have written or the results that you have achieved and file it in google docs and/or in GitHub.
Do this on regular basis. You must file one thing in one month. In this way, you will be able to gather 12+ things to show within a period of one year and when the time comes and someone asks you about your work you just hand the link to your portfolio.
So these are some of my deficiencies that are stopping me from a famous person. What are yours? Tell me in the comments.
Very well phrased! Looking forward to read your next post.
Thanks.