• Skip to main content
  • Skip to primary sidebar
BMA

BeMyAficionado

Inspire Affection

How To Start Your Career as a Computer Programmer (For Newbies)

November 5, 2020 by varunshrivastava Leave a Comment

In this pandemic, I got in touch with many undergraduates and I found a common pattern. They all seem to be confused, usually spread all over the place. On top of that, they are running after the wrong stuff.

You see today the internet is filled with information. If you want to learn something, it is just a search away. And this is a good thing.

But it can easily overwhelm you especially when you are new. Not just that, it might set you off in the wrong direction very fast.

In this article, I will try to address this problem.

I will try to explain to you what I have learned over the course of my career and how can you start your career in the right way. And trust me there is a right way.

Table of Contents

  • Let’s Define Programming…
    • So, what do you understand by Design of the Algorithm?
    • Implementation of the Algorithm
  • Programming Language To Begin With
  • C++ Programming Language
    • C++ Input and Output

Let’s Define Programming…

Computer Programming is a combination of two things:

  1. Design of the Algorithm
  2. Implementation of the Algorithm

It is as simple as that. From now on just remember these two things when it comes to programming – Design and Implementation of an algorithm is programming.

So, what do you understand by Design of the Algorithm?

The design of an algorithm is a sweet combination of all the well-known techniques and new insights (your personal touch). It consists of problem-solving and mathematical thinking.

But I would suggest you give more time in reading and understanding the well-known techniques than your own insights :). At least at the beginning of your career. You will get a lot of time to use your insights.

Once you have started learning about various scientific techniques, you can move to the next step i.e. Implementation of the Algorithm.

Implementation of the Algorithm

Programming meme
😀

The implementation of the algorithm requires good programming skills.

Once you have come up with a good algorithm design, it is very important that you should be able to implement it. And implementation requires good programming skills.

The ability to turn your thoughts into the code is a very valuable skill. And there are companies willing to pay a lot for it. And it is very evident that companies like Facebook and Google pay handsome salaries to entry-level grads as well.

The next thing comes to a programming language. So which programming language should you choose to start your career?

Programming Language To Begin With

Programming language does play a major role especially when you are starting your career.

And I want to make this thing very clear.

Whoever says that programming language is just a tool to accomplish a task is either a veteran or a senior level developer.

But in this article, I want to be blunt about it; whether you like it or not.

If you are serious about coding then pick C++ as your first language. I would have said C but then I don’t want you to struggle a lot at the start. So, C++ is the best choice for language.

Also, if you will talk to any competitive programmer they will recommend you c++ because it’s very fast and you get almost all the basic data structures with the standard library. This is one more reason that I recommend C++ over C.

Java is another option for you but then it is a complete object-oriented language that comes with its own concepts. It’s not a pure object-oriented language but very close to be a one.

And trust me OOPs should be left for later. It comes with its own set of concepts that you don’t really need at the beginning.

Another popular language in the market is Python.

It is a very high-level programming language which is easy to start with but I would not recommend it to you at the beginning. This is mostly because you will miss the basic constructs of a programming language.

One such example is pointers.

Just by understanding the pointers in C and C++, you understand more than 50% stuff about the language construct automatically.

After that, learning any new language becomes a piece of cake.

But when you start your journey with a high-level language like python you tend to miss on these things which can hurt you later in your career. So without any second thoughts go with C++.

Let me give you a little glance and hopefully get you started today.

C++ Programming Language

Let’s start with a typical C++ template code. This is the same template that people use for competitive programming.

#include <bits/stdc++.h>
using namespace std;

int main() {
// solution comes here
}

The #include line at the top is the g++ compiler feature that allows us to include the entire standard libraries. This is useful in the terms that you don’t have to include libraries like iostream, algorithms etc… separately.

The above code can be compiled using the following command:

g++ -std=c++11 -O2 -Wall test.cpp -o test

The above command produces a binary file from the source code test.cpp. The compiler follows the C++11 standard (-std=c++11), optimizes the code (-O2) and shows warnings about possible errors (-Wall).

C++ Input and Output

In most of the cases, you will be using standard streams for reading input and writing output.

In C++, cin is the standard input stream used for reading the input and cout is the standard output. In addition, the C functions scanf and printf can also be used.

The input of the program usually consists of numbers and strings separated by space or newline. Check the below example:

#include<bits/stdc++.h>

using namespace std;

int main() {
    int a, b;
    string x;
    cin >> a >> b >> x;
    
    return 0;
}

This kind of code always works assuming that there is a space or new line between the inputs.

For example – the above code can read both of the below inputs:

123 456 test_input
123 456
test_input

The cout stream is used for output as follows:

#include<bits/stdc++.h>

using namespace std;

int main() {
    int a = 123, b = 456;
    string x = "monkey";
    cout << a << " " << b << " " << x << "\n";

    return 0;
}

A small tip for competitive programmers: Input and output can be bottleneck sometimes. So, you can put the following lines of code at the beginning of the code to make input and output more efficient.

ios::sync_with_stdio(0);
cin.tie(0);

I will leave the article here. And if you have enjoyed reading it then do subscribe. I’ll be writing articles on algorithms and data structures for the next few days. It will be a great piece for you all to learn.

Let me know if you have any questions or concerns in the comments below. I will reply as quickly as I can.

Following articles may interest you:

  • Long Polling Implementation with Spring Boot and Java
  • Undirected Graphs [Examples, Implementation & Graph Processor]
  • QuickSort – Understanding the QuickSort Algorithm and Implementation
  • Create Page Layouts with React and Typescript
  • Time Complexity Comparison Sheet Of Elementary Sorting Algorithms

See you next time.

Related

Filed Under: Blogging, Programming Tagged With: computer programmer, getting started, programming, start career

Primary Sidebar

Subscribe to Blog via Email

Do you enjoy the content? Feel free to leave your email with me to receive new content straight to your inbox. I'm an engineer, you can trust me :)

Join 874 other subscribers

Latest Podcasts

Recent Posts

  • Is The Cosmos a Vast Computation?
  • Building Semantic Search for E-commerce Using Product Embeddings and OpenSearch
  • Leader Election with ZooKeeper: Simplifying Distributed Systems Management
  • AWS Serverless Event Driven Data Ingestion from Multiple and Diverse Sources
  • A Step-by-Step Guide to Deploy a Static Website with CloudFront and S3 Using CDK Behind A Custom Domain

Recent Comments

  • Varun Shrivastava on Deploy Lambda Function and API Gateway With Terraform
  • Vaibhav Shrivastava on Deploy Lambda Function and API Gateway With Terraform
  • Varun Shrivastava on Should Girls Wear Short Clothes?
  • D on Should Girls Wear Short Clothes?
  • disqus_X5PikVsRAg on Basic Calculator Leetcode Problem Using Object-Oriented Programming In Java

Categories

  • Blogging
  • Cooking
  • Fashion
  • Finance & Money
  • Programming
  • Reviews
  • Software Quality Assurance
  • Technology
  • Travelling
  • Tutorials
  • Web Hosting
  • Wordpress N SEO

Archives

  • November 2024
  • September 2024
  • July 2024
  • April 2024
  • February 2024
  • November 2023
  • June 2023
  • May 2023
  • April 2023
  • August 2022
  • May 2022
  • April 2022
  • February 2022
  • January 2022
  • November 2021
  • September 2021
  • August 2021
  • June 2021
  • May 2021
  • April 2021
  • February 2021
  • January 2021
  • December 2020
  • November 2020
  • October 2020
  • September 2020
  • August 2020
  • July 2020
  • June 2020
  • May 2020
  • April 2020
  • February 2020
  • December 2019
  • November 2019
  • October 2019
  • August 2019
  • July 2019
  • June 2019
  • May 2019
  • April 2019
  • March 2019
  • January 2019
  • November 2018
  • October 2018
  • September 2018
  • August 2018
  • July 2018
  • June 2018
  • May 2018
  • March 2018
  • February 2018
  • January 2018
  • December 2017
  • November 2017
  • October 2017
  • September 2017
  • August 2017
  • July 2017
  • June 2017
  • May 2017
  • April 2017
  • March 2017
  • February 2017
  • January 2017
  • December 2016
  • November 2016
  • October 2016
  • September 2016
  • August 2016
  • July 2016
  • June 2016
  • May 2016

Tags

Affordable Hosting (4) algorithms (4) amazon (3) aoc-2020 (7) believe in yourself (4) best (4) database (4) earn money blogging (5) education (4) elementary sorting algorithms (4) experience (3) fashion (4) finance (6) Financial Freedom (7) food (7) friends (3) goals (5) google (5) india (10) indian cuisine (5) indian education system (4) java (16) life (16) life changing (4) love (4) make money (3) microservices (9) motivation (4) oops (4) podcast (6) poor education system (4) principles of microservices (5) problem-solving (7) programmer (5) programming (28) python (5) reality (3) seo (6) spring (3) success (10) success factor (4) technology (4) top 5 (7) typescript (3) wordpress (7)

Copyright © 2025 · Be My Aficionado · WordPress · Log in

Go to mobile version