Want to code? Follow your gut!

Follow your gut!Vitor MonteiroBlockedUnblockFollowFollowingMay 24Most of the times, people tend to tell you what to do and what to follow.

You should make sure that it does not happen and you’re the captain of your skillset ship!Every programmer wannabe has asked at least one time, where to start learning or what to do first.

I’ve been there too… It was not an easy task to get started because I wanted to make sure I learned the right thing and started the right way.

However, I couldn’t get focus on a path because every resource I looked after kept telling me that I should learn Python while others told Java and others said C# if I wanted a Microsoft environment.

“Sheesh, so many different things… What should I choose?”Now I realize that each person hello world is unique, therefore, there is no specific path to follow.

We, the “more” experienced coders, must not point to certain languages because we like it more or because we think it’s better for others.

Instead, we should provide a way for you, reading this post, try to become a programmer, follow your gut and decide what’s best for you!With that said, I will now try to give you my insights on the main programming topics or paths and some pros and cons of each topic.

Again, this is not a guideline but is a “framework” to help you create your development roadmap.

DesktopBecome the matrix bossUsually, most programmers start here.

The first hello world.

That’s where I started as well… But for you, it might not be the best option.

Let me lay out the pros and cons while leaving a snippet of the most known languages and the ones I’m experienced.

However, feel free to get to know more languages clicking here: Languages List (https://en.


org/wiki/List_of_programming_languages)ProsDeveloping console applications is where you start to get a grip on programming logic.

Since there are no graphical components, there are no distractions and we can focus solely on the problem ahead and think about the solution.

Alongside with the well-written code and hopefully optimized, there are also some problems regarding the IDE (Integrated Development Environment) and the operating system.

These problems will allow our baggage to grow!ConsThe future of computing is not desktop applications but mobile and web applications.

You are limited to somewhat old technologies and seems that the support is diminishing throughout the years, except for the Microsoft stack of technologiesUnless there is a vast knowledge of GUI (Graphical User Interface) of the programming language of choice, the applications developed do not present much real-world usage.

(I might be killed over this last bullet point…)SnippetsJavapublic class HelloWorld { public static void main(String[] args) { // Prints "Hello, World" to the terminal window.



println("Hello, World"); }}C#include int main(){ // printf() displays the string inside quotation printf("Hello, World!"); return 0;}C++#include using namespace std;int main() { cout << "Hello, World!"; return 0;}Pythonprint("Hello World")C#using System;namespace HelloWorld{ class Hello { static void Main() { Console.

WriteLine("Hello World!"); // Keep the console window open in debug mode.


WriteLine("Press any key to exit.

"); Console.

ReadKey(); } }}Add color and animationsOf course, I could not stop end this section without mentioning the existing GUI frameworks for the programming languages I mentioned above.

JavaFX — OpenJFX is an open source, a next-generation client application platform for desktop, mobile and embedded systems built on Java.

QT creator — Qt Creator is a cross-platform C++, JavaScript and QML integrated development environment which is part of the SDK for the Qt GUI application development frameworkTkinter — Tkinter is Python’s de-facto standard GUI (Graphical User Interface) package.

WinForms — It is a graphical user interface for.

Net framework desktop applicationsWebThis is where it gets serious!.Web development has a lot of concepts to understand right off the bat.

However, if you are the type of person that wants to start programming and see the results right way, this is, probably, the easiest way.

Build the bodyWeb development is like the human body.

We have the skeleton (HTML), our skin, hair, eyes, and most of our physical features (CSS) and then we have the organs and the blood system and so on (JavaScript).

This is what we call the front end.

This part of the code is all about what the users see, like what you are seeing right now.

So, I mentioned 3 programming languages above, right?.No, I didn’t… While all sound like programming languages, only one is a programming language.


HTML is a markup language and CSS is a stylesheet language.

We say that we are on the presence of a programming language when there are conditions being checked and code executing multiple times aka looping.

Get a brainWhat would be our body if we had no brain?.You would not understand a thing you are reading, dah!.So, in order to give a brain to our app or business logic, we need to add the back end.

Back end is what the user normally does not see.

In the back end, we can capture user information and process that information in order to perform more advanced actions like log in or register a user on a system.

Add memoriesBut what if you want to save your memories, wouldn’t it be nice if you could remember things when you were asked about them?.We, humans, have that innate talent, but computers don’t, so we have the so-called databases.

Databases used to be just plain text files organized somehow in folders and hopefully it would not be big to handle (too much pain just to even say this…).

Nowadays, we use DBMS, database management systems.

They are engines responsible for persisting data and allowing us to fetch millions of records within milliseconds!Most of these databases are ruled by SQL, which I’ll talk about on another post.

Now that you understand web development concepts (just a little, it’s a big world that even I and most programmers don’t fully understand), it’s time for the showdown.

ProsYou have the ability to use the latest technologies and have a huge community supporting the development, even if the technology you are using is quite new.

You can see your newly created app running in multiple devices and in multiple browsers.

You can visually see the progress you’ve made since almost everything is graphical.

This also allows you to stay motivated.

Most people spend around 2 hours browsing on the internet per day, so the app you are developing might be very useful in the real world!ConsSince there are a lot of technologies to grasp on, the learning curve might be a little steeper.

If you start with the front end (people usually learn this skill first), you might not be learning how to program.

Instead, you are learning how to make a website or just designing the look and feel.

If you start with the back end, you will probably experience the same issues as on the desktop topic.

On the long run, you might feel that you have missed some steps while learning how to program because you can focus on front end more than you do in the back end, leading you to some kind of confusion.

MobileNowadays, this is the go-to platform.

Everything is shifting to mobile apps and development is no exception.

Here comes the battle of the ages!.Even bigger than Game of Thrones!!.Android vs iOS.

Who wins?.You decide.

Personally, I am a big Android and Google fan!Mobile-wise, I prefer Android hands down.

On the desktop, the story might change since MacBook Pro is pure brilliance.

But, given the fact that this is not a tech review, I’ll get straight to the point.

Android has probably one of the biggest developers communities in the world.

iOS has (scratch) had a better coding language when compared to Android.

Usually, this battle is settled by what kind of devices you have.

Typically, if you have an Apple ecosystem, then you would develop iOS apps while if you have an Android phone, you’d probably use and develop Android apps.

Then, of course, Google has brought us something unique and wonderful, Flutter.

Flutter is open source and is Google’s portable UI toolkit for building beautiful, native applications for mobile, web, and desktop from a single codebase.

This Google framework is the work of art of Google proving that they are indeed captains of their own ship and are sailing on their own ocean.

And this is just perfect because you don’t have to write different code, just Write One time, Build and Run Anywhere (I made this slogan up).

ProsYou have the ability to use the latest technologies and have a huge community supporting the development, especially if you are on Android.

You can see your newly created app running in multiple devices and multiple platforms.

If you enjoy the graphical aspect then mobile development is for you.

Mobile development is all about user engagement and user experience and how to make the product more attractive, so if you like this kind of fun, dive right inMost people spend around 4 hours per day using mobile apps, so the app you are developing will, probably, have a lot of traction in the business world!ConsAgain, there are more concepts to grasp, so you might feel like you are no evolving.

There are a lot of device specific details you must be aware of when planning and developing the application.

By now, you should be able to understand the major differences and similarities of each topic, and I’m now able to call you captain.

From now on, you will be able to sail your skills’ ship and storage a lot of containers filled with information and knowledge.

There is just a little disclaimer I want to make.

These 3 topics are not even near all the programming topics out there… This field is very active!.I’ll let you figure out for yourself all other topics.

If you have any doubt, get in touch with me as you wish.

I’ll get back to you as soon as possible!Liked this article?.Bookmark it and share it with other programming professionals or students to help them and I grow.

Originally posted on Fast Dev Blog!.. More details

Leave a Reply