Wooah since there are dozens of articles on this theme, I'll try to share with you my "secrets" about how you could learn to write beautiful code and understand its passion in a uniquer way.

What is "programming"?

Many people may say that programming is the phase where you are just "typing" the code of your application... But actually it's much more than just typing...

While one person is "programming" he is concentrated deeply on his work, which allows his brain to connect the dots even before he had developed the whole picture. That by itself makes the brain to send stimulation impulses between the Frontal Lobesand the Imagination Engine, which makes the person to think and grow his ability to solve problems in the real world, allowing him to see the solution directly in his head.

So basically when you are programming you are learning and self improving yourself.

How to start?

There are a lot of ways how you can start with programming, but the one which worked for me is - Self inspiration.

What is "Self inspiration" ?!

Imagine that you have some serious problem which hasn't solution on first look... Then you start to struggle, but you still don't see the solution... Then the "small" depression comes.

Then you are going to ask yourself - "Is it worth it?" for a lot of people the answer is "No" but if you wan't so to change the world there isn't any easy way to do that. So you have to struggle until the solution popups in your head.

That is what I call self inspiration - "The spirit to solve your own problems alone".

Back in the days when I was a newbie, my struggle was bound with the tons of information which was coming to me and the lack of time which appeared, because of missed deadlines and forgotten tasks. So I've decided to create a simple program for notes which idea was to notify me when the due date comes. It sounds pretty simple and funny but back then there weren't any good solutions for my Windows XP. So I've started...

Which is the right language to start with?

Well, there will be a lot of opinions about that, but in the end the answer is - IT DEPENDS.

It depends on that what are you willing to build? A WEB application? A Desktop application? A mobile application? What is your idea? (share in the comments)

I've developed the notification app on the Pascal programming language. It is one very simple and good language for very ... very low level programmers. Of course you may like to choose C as a starting language since it is in the bottom of every modern technology nowadays... C is the ancestor of C++, Objective C, C# and even the WEB scripting language PHP is based on it. So it is a very strong platform which can give you the basics, which you'll need for the next step.

The understanding of your idea and choosing the correct language are the first steps on which you are going to struggle every time when you are starting a new project.

The Platform

This is the most interesting and hard step of the project (before the sales). Before you start to hit the keyboard and generate large amount of code you have to know and understand the platform for which you are going to build the product.

Which languages does it supports? Which is the language of the platform it self? The product is for the platform or the platform is just a host?

Those are the next questions which you had to answer before you can start to develop the great things.

For example if you are going to build an iOS application you would like to know which parts of the OS is open for developers and which are not, which hardware components can be used in your application?

Once you make sure that you have answers of those questions you are ready to start!

fun CODDING_() { "I", "<3", "programming" }

When you are new to a programming language it is a good practice to start with it's documentation and niceties. Only then you'll be ready for the real deal!

Every project have some interface... Even the apps which are written for the CLI (Command Line Interface). So I suggest you to visualize your ideas on paper or if you don't like to move with a notebook you can use this amazing free tool called Sketchpad.

Sketching your ideas (a.k.a scratches) can help you to understand the idea better and see the project in different ways. Even if you are not good at drawing DON'T hesitate to scratch something.

You'll be amazed how simple scratches can turn your thinking to a whole new level.

About the haters and the fear...

These days a lot of people are telling me that the reason for giving up is all the hate and insults which, they've received as a feedback from their co-workers...

Sadly, the jealousy is deeply programmed in the human nature and there is nothing that we can do about it. People start to make fun of your first tries for bunch of reasons... Psychological research have proven that, when we see a potential competitor in someone we start to hit him mentally with hateful speech and words that are meant to discourage him. That is a fact even if we barely understood that we were doing it...

So the only thing that had left for you is to FIGHT BACK! Sometimes there will be people who'll try to demotivate you, people who'll try to convince you in that your idea is stup*d. But remember that - NEVER GIVE UP on your dreams, you are unique!

Even I've received some hateful emails yesterday which were addressed to my very first WEB project... But there is nothing that can be done about it, humans are humans even without the need for hate it will be there...

There aren't any easy ways to start something new, but once you've succeeded, you'll see how everyone who've tried to discouraged you, will start to follow you - Unknown dreamer

Check the original post on LinkedIn here!