How to become a software developer

Software developer means a person, who is responsible in an organization to create programs to develop certain technology

such as radio technology, signal processing and also creating new algorithms to solve a business problem

Software means it is a set of instruction’s which is responsible for performing a certain operation on a hardware platform

Nowadays, software development is done on a tight time frame, the job of a software developer become similar to a professional athlete

As you might know, how a professional athlete is passionate about winning an Olympic medal, the same kind of passion also required for software development to sustain, and also it requires genuine love towards software development

“The software developers who hired at Space X were asked to solve the standard Space X problem requires five hundred or more lines of code” by Ashlee Vance

Step #1: choose one technology

Many technologies exist out there but few of them are mentioned here first: choose one technology with which you are comfortable second: determine what kind of software developer you would like to become

For example, the job titles for 5G technology will be 5G software developer, 4G software developer, 3G software developer, physical layer software developer, Baseband software developer, digital radio algorithms developer

  1. Big Data
  2. 5G,4G,3G,2G technology
  3. Internet   of things(IoT)
  4. Blockchain
  5. Quantum computing
  6. Artificial intelligence
  7. DARQ
  8. AS-a –Service
  9. Robotic process automation
  10. 3D printing
  11. Cognitive cloud computing
  12. Augmented Virtuality and extended reality

Different technologies will have a different kind of software developers so, be specific  about the kind of developer you would like to become

Remember  software developer is a general  term and being a software developer doesn’t mean that you can develop any program related to any technology

Step #2:Develop technical skills required by your chosen technology

Determine the skillset that required for the kind of software developer you would like to be and to determine the skillset you can take help from any job portal website by visiting it and searching for jobs related to your chosen technology

Next, write down 2  to 3 job description from the website then analyze which skills are important  for your chosen technology

As you have noted the skillset that is required for the chosen technology then at this instance a question arises that how to develop the required skillset?

Usually, people choose two ways to develop technical skills

  1. Going to college
  2. Self-learning

If you have chosen the route of going to college then it will be better to have some kind of written plan with you otherwise the majority of students end up nowhere with dept

Almost all software developer were self-taught  and also it is important to know that no one will teach you anything always learning is your responsibility

The analysis of the skillset which is required for your chosen technology should be accurate otherwise you will acquire a skill set that no one wants

First, start learning one or two programming language which you have identified to develop a skillset for the chosen technology

Learning a programming language

I like to share with you some resources that might help you learn your first programming language the resources that I used to learn a C are

·  Data structures using C by Reema Thareja

·  Let us C by Yashavant Kanetkar

·  The C programming language by Brian W.Kernighan Dennis M.Ritchie

Honestly, I haven’t studied all the books available on C in the market but I will share with you the experience

The book by Dennis M.Ritchie I find it a bit hard to understand, on the other hand, I find let us C a bit simple to understand

Data structures using C by Reema Thareja, the book is meant to teach data structures but before she introduces the data structures and algorithms she gives a short and crisp introduction to C

Note: once you learned the first programming you need to it review once in and while otherwise,  you will have a hard time when you are writing a program because you have forgotten the concepts of C such as functions, and pointers(“software development is a continuous process, not a destination”)

Second: learn data structures and algorithms, being good with algorithms will help you solve problems quickly

  • Solve problems and develop solutions plus, for every piece of code you write try to evaluate its time and space efficiency
  • Try to write code on paper. yes of course!, Coding on a compiler gives you the benefits of syntax highlighter, the indentation of code, and quick debugging and it is also true that  writing code on paper is a slow process
  • Test the written code on paper because during interviews you need to write on a whiteboard so, it will be better to practice in advance
  • Finally, type the paper code into the computer so, that you can evaluate your accuracy

Really good small notes

Whatever programming language or algorithms you have learned from a text, online then at that instant you need to make notes of it

You need to make really good small notes that are easy to revise quickly, if it is large and complex and takes a lot of time to revise then you would not be able to use it

Whatever notes you have made you need to revise them on regular bases otherwise you will forget and all the knowledge you gathered will become zero

The benefit of note-making is that you can recall the concept or the logic quickly but if you don’t revise it on regular bases then you need to spend more time to recall the concepts from the written notes

For example, suppose you have studied the python programming language book and made really good notes of it but if you don’t revise them on regular bases then all the knowledge you have gathered will become zero

Before the interview, you just need to revise all the concepts or problems that  you have solved from the notes

Remember: at the time of the interview, you need to recall the exact same thing which you have studied

So, at the time of the interview, you just need to go through your small notes, and also you can use notes only when you have revised them on regular bases 

Memorizing the algorithms

We don’t have to cram the algorithms or memorize the algorithms but  understand the algorithm

Why?

Because if you understand the algorithm then it will be easy for you to memorize it

Remember: understanding is a solution to remembering a particular piece of code

If you understand it, then, in that case, you don’t have to memorize some lines of code

Third: learn some design patterns

Step #3:Build projects

“Steve Davis, the director of advanced projects at space X. he’s been working 16 hours a day every day for years”  by Ashlee Vance

Finally, build some projects related to the chosen technology and the skillset that you have developed to showcase a potential employer

The project should create certain value and solves a business problem furthermore, You should create at least 4 to 5 project to show a potential employer

Suppose you build an audio plugin and showed the project to the employer then suppose if he asked you. Why you have used C/C++ instead of Matlab?

at that instance, you can’t say

everybody doing like that, “I have seen in a youtube video that is done in that way only”

No!

You can’t say like that, you need to prove it, why you have used certain thing over other. If you can’t explain why you have used certain thing over other then that means you copied and pasted it

How to write an abstract for your project?

Writing a good description of your project will be beneficial in many ways (people judge a book by its cover)

Use the framework mentioned below to describe your projects

  1. Introduction
  2. Problem statement
  3. How do you overcome the problem?
  4. Process, how you did it? with what tools?

Step#4: Need a lot of concentration/passion

Writing good software is hard so, you  need a lot of concentration and require a lot of love and passion

It is better if you can switch off your mobile phone/tv/movies and other distractions so, that you focus effectively

Sometimes people who write software forget to eat when they are totally into the project they are building

Step#5:Collaboration(sharing resources with others)

It is human nature that we hide whatever we know or resources with others

But in software development, individual collaboration and trust in other members is the critical factor for the success of the software project

You should understand that  by sharing and discussing what you know with others a new world open’s up and with this method you will know it better

Remember great things in software development are never done by one person but they are done by a team of people

Whatever you know and whatever you have learned you should share it by sharing you will get multiplied  

Step#6: Ask the right questions

You can use online platforms like Udemy or any other platform to collaborate especially when you are a beginner so that you won’t  get left alone and ask lots of questions on platforms like StackOverflow, Quora

Asking the right questions  will let you find the right way to proceed

Ex: How did you do that?

 Why you used this library?

You rarely take things how it is given you always ask questions

Why? Why? Why?

Until and unless you get the facts if someone said “it will be done like that only” then should  you smell the danger

Being realistic lets you know, how difficult things are? Whether it is feasible? How much time will take to complete?

Always proceed from a plan and always rely on facts then depending on accidents or assumptions

Step #7:Listen to the chosen  technology expert

Always listen to the chosen technology expert. read their blogs, books, watch videos of them by listening to the expert you can estimate the future better than your competitors

Step #8:develop software project management and product development skills

to become an efficient software developer one needs to master software project management and product development

why?

Because many programmer’s wastes their time struggling to achieve deadline without providing any value to the client

Being good at software project management you can handle time, energy, resources, cost,  efficiently also project planning let you know whether the project is practical or an unrealistic plan

Learn some product development approaches like agile and lean

Step #9:Preparing for job interviews

Creating online presence: create your profile on the platforms such as GitHub, LinkedIn, StackOverflow, create your blog on WordPress

Having an online presence represents that you have a passion for technology and also make  you more trustworthy

Note: concentrate on building a great Linkedin profile and also personal brand because recruiters will look at this when they consider any candidate  

Resume: resume will be the first thing an interviewer will notice so, make it stand out from others, by matching skill set with the job description

It is always better that you apply for 1 or 2 jobs a day than applying for 200 to 300 jobs a day

Don’t execrate the skillset because the interviewer will know it so, be genuine and honest what you know

Cover letter: Read carefully the job descriptions for what skills and practices are needed for the role you are applying for? why you are the best fit for the role? How you will fulfill the role requirements? How will you impact the role you are applying for? Why you have applied for this job?

Note: don’t copy everything from the job description

Draw the connection between skills needed and the relevant experience that you have    

Elevator pitch: write your pitch and practice it, tell them about what value you can provide? and how you are good to the company? Also what contribution you can bring to the company?

Mohammed Anees

Hey there, welcome to aneescraftsmanship I am Mohammed Anees an independent developer/blogger. I like to share and discuss the craft with others plus the things which I have learned because I believe that through discussion and sharing a new world opens up

Leave a Reply

Your email address will not be published.