Personal Productivity Stack Exchange is a question and answer site for people wanting to improve their personal productivity. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm 21 years old. And I dream to be a computer programmer, I really do. The problem is (I am going to get a bit technical here) that when i decide to learn a certain programming language that i see my self comfortable with, i hear someone says it has a small career market(sometimes that's true) or it's not that good(as he sees). But still, i found myself very comforted with it, and see myself can go somewhere by learning it, even if it has a small career market, i hope to be so pro at it that i can hunt job opportunities with ease..

But unfortunately, i find myself just turning around and starting all over with another language. Until somebody else change my mind. I feel like going.. no where .

I can't stick with a goal despite what others say..

And that's not only affecting computer stuff. It's affecting, most of my life decisions.

Can anybody say what's wrong with me, please ?

share|improve this question
The first thing you should be taught as a programmer is that languages come and go, and you will need to learn new languages. Me: Basic, Cobol, Pascal, Assembler, C, C++, Java, C#, JavaScript, and I'm not retired yet. Enjoy learning. – Bernhard Hofmann Sep 27 '11 at 9:09
@Rafael I would recommend you the book "THE ALGORITHM DESIGN MANUAL". Take time to read and understand it, try implementing it with hand. If you are confident, you can just start programming in any languages. Languages are just a wrapper around algorithms. Read it and post back. Would be happy to hear from you. – Ubermensch Jan 30 '12 at 14:38

11 Answers 11

that when i decide to learn a certain programming language

I don't suggest it. Learning one or certain programming language is not good. I think first of all, you should learn Object-oriented programming without connected any specific language. After that, learn how many programming languages that you can. Try all of them. Make a small project for everyone. And this way, you can find which programming language is best for you.

Can anybody say what's wrong with me, please ?

Nothing wrong with you. Take it easy. Always open your mind new ideas and suggestions. But apply a few. Diversity means variety and wealth. Think like this; Who knows there are how many people in your around that you can benefits their information, experience and intelligence.

And you are 21 years old. I mean come on, you are in the beginning on the road. Believe me, you will make a lot of mistake in rest of your life and these mistakes get you experience. You choose being a programmer and it's great. How can you be a great programmer? Answer is: getting a lot of experience. How can you get a lot of experience? Answer is: Making a lot of mistakes and someday you will learn how to do right.

Remember this; No matter how good you are, always someone will be better than you.

Because; You can't know what you learn someone which you think "I know everything he/she knows"

share|improve this answer
The problem is, it's kinda career choice. Failing in this gonna be painful. Of course i will start over if i failed. But it'd take some time to get back on track again, which will cause some serious financial damage i think.. – Rafael Adel Sep 27 '11 at 12:12
@Rafael I totally understand you. Don't worry. And Trust your instinct. If you care just money, choose C# or Java. (Mostly Java). Mostly, they are using in big projects. But with just choosing these will make you happy? Some people search their programming language a lot of years. They work on project used different languages. After that, they choose which one is the best. As Financial, don't worry too much my friends. At these ages, you work with 10 times and earn money 1 times, but getting more experience, you work less and earn money more.. Just keep doing it and HAVE FUN !!! – Soner Gönül Sep 27 '11 at 13:01
I agree with Soner. You don't have a career in just one language. You need to start programming. It's also good to know different languages so you can pick one up faster. – Jeanne Boyarsky Sep 28 '11 at 0:40
@Rafael, Soner said After that, learn how many programming languages that you can. Try all of them. I find this statement "misleading". Knowing what "kind" of software you'd like to develop is a must before you learn the variety of languages. I have spent a great amount of time in learning C, FoxPro, Python, Gofer, Perl, Java etc. And now I have discovered that the kind of softwares I like to develop require C++/C! Learning all sorts of languages haphazardly can only make you jack of all and master of none, and can be frustrating too because you won't be knowing what exactly do you want. – TheIndependentAquarius Sep 29 '11 at 11:54
@Soner Can you remove the following misleading statements from your answer? After that, learn how many programming languages that you can. Try all of them. Make a small project for everyone. And this way, you can find which programming language is best for you. No offense intended, but this is a bad advice, if you think I am wrong then please tell me otherwise edit your answer, I have explained my reasons in my answer. – TheIndependentAquarius Sep 30 '11 at 4:16

I want to put the programming stuff aside (it's just content) and focus on your process.

This process you have in place will come up in all kinds of areas in your life. The underlying issue here is plainly stated in the title of your post - "How to stop being controlled by others".

You are not being controlled.

You are choosing based on what others want.

The question is, why? What would motivated you to do such a thing? Spend some time thinking about how you interact with other people. If you want them to like you badly enough, you might give up a part of yourself in exchange. In this case, you are "letting them decide" how you should run your life. The question to ask yourself: if you're giving up a piece of yourself in order to feel like these people like you, is it you they like, or an image you've created for them, the "perfect you"?

Sit with that for a bit. Let me tell you something - once you break through the the stuff you're making up for yourself, and start actually living your life, it becomes much more enjoyable and genuine. And the people who love you won't leave you for it.

share|improve this answer

Before deciding on a programming language to learn, IMO you should know what kind of software you would like to build.

Doing it vice versa will make you move in circles. It is like asking, "Should I go by train or a cycle?", the answer to this question depends on where you want to go!

My suggestion is to list down the KINDS of softwares which you would like to develop. Example:
1. Linux scripts for system administration tasks
2. Linux device drivers/Interrupt handlers
3. Database projects e.g Library management systems
4. Web based project e.g Website etc.

Now, if you select 1, language needed is shell scripts, C/C++ won't be suitable for the job.
if you select 2, language needed is C, Java/.Net won't be suitable for the job, since kernel is written in C.
if you select 3, language needed is PHP/Python, Assembly language won't be suitable for the job.
if you select 4, language needed is PHP/Python/Javascript, Assembly language/C++ won't be suitable for the job.

If your aim is to earn huge money, then you may need to kill your interest, and look in the "job websites". See what kind of softwares fetch what kind of income, and act accordingly.

Relying on people won't be too helpful IMO, different people have different opinions. The best way to know what's going on in the market, is to make a extensive and intelligent search on the job websites(they are there for a reason).

share|improve this answer
So, if i want to learn Shell scripting as well as programming desktop applications on Linux.. that would be Python and similar languages ? And about job websites.. I find web development with is the dominant.. But i'm not really interested in web development so i'm kinda in a pickle here .. – Rafael Adel Sep 29 '11 at 12:46
@Rafael Please understand that Shell scripting is "usually" used for system administration tasks and "desktop applications" on Linux or anywhere needs DIFFERENT languages. If you want to learn both, I recommend you to start with the one in which you are "most" interested. Example: For building desktop applications on Linux Qt is nice option (that'll make your life easier). Python and PHP are used "usually" for the tasks which involve "databases" and "browsers". .Net framework is Windows based, IMO you ideally shouldn't chose a language which is platform dependent. YMMV. Continued below. – TheIndependentAquarius Sep 29 '11 at 13:57
@Rafael Continued from above: FYI web programming is NOT the ONLY source of earning money. Can you list at least 5 "types" of softwares that you would "really" like to work on? – TheIndependentAquarius Sep 29 '11 at 13:59
First of all, thanks for replying. What do you mean by type of software? you mean certain applications or software fields ? – Rafael Adel Sep 29 '11 at 14:15
@Rafael I gave the examples of types of softwares in my main answer above. Examples: 1. Database based softwares 2. Website/GUI designing 3. Kernel programming 4. Desktop application development 5. Real time applications development 6. Assembler development 7. Embedded systems development .. That's all I can think of right now. – TheIndependentAquarius Sep 29 '11 at 14:21

Learn to separate facts from opinions.

When someone tells you that technology X "is not that good (as he sees)", then probe into that matter by asking him a few questions, such as:

  • what exactly is not good about X?

  • what other technology would be a suitable replacement for X?

  • what doesn't this replacement do well, that X does very well?

Then, ask yourself these questions. Do some research. Compare notes, and arrive at a bit more sensible answer. Sometimes, you may want to take things easy and learn X for the mere sake of enjoyment (and here is where a harmless "l'enfer, c'est les autres" attitude can come in handy).

share|improve this answer

Learning a programming language is not a goal it self. It is a skill to help you do whatever you are want to do in your professional carrier/life. Setting a goal for learning a programming language might be ambiguous especially if you are not sure what to expect in terms of dedication you have to make, and the challenges you will face.

So how can you define that something has been "learned"?

Setup milestones in your training. This will help you to establish goals that are more solid than just "learning a programming language".

For example, finishing a chapter in a book, or examining a code piece.. These will get you through the learning process one step at a time, in a controlled way.

Setup little training missions for yourself, and don't discuss with people until you get them done. This way you would discuss your work, rather than discussing your carrier options.

share|improve this answer
+1 I consider your last paragraph as the REAL answer: "Setup little training missions for yourself, and don't discuss with people until you get them done. This way you would discuss your work, rather than discussing your carrier options." – wassimans Oct 14 '11 at 21:12

I want to go with a short answer in my experience: If you want to be successful of anything, just follow your passion and keep doing it. If you have to learn something else rather than your favourite language because of someone else's word, they must talk about the popular lang which you can get a job easily.

But believe me, lang is not important. Once you get well in programming, you should try them all and the lang is not the problem but your brain is matter now.

I'm 21 years old too, and I decide to follow my passion : " Do your best ! The rest will come "

share|improve this answer

I think you should learn the language you want not because the language itself might be valuable or not -it probably is- but because it's an accomplishment and it will be a stepping stone to bigger accomplishments.

People's opinions are important. People's opinions are also cheap and often irrelevant. Consult them, gather them but also probe and cross-check them against other sources. What matters at the end isn't what you do, but how much you do it. Learning a bad language for a thousand hours is better than learning a good language for ten.

Find your own path. Discover what you like and have a passion for and immerse yourself in it. Being good at anything is valuable, and it's especially easy to be good at things that you have a passion for.

share|improve this answer

But unfortunately, i find myself just turning around and starting all over with another language. Until somebody else change my mind. I feel like going.. no where .

I can't stick with a goal despite what others say..

What is happening in the "somebody else change my mind" step here? Can you state why you go where you go? If not, then I could see the problem being that you either don't have the vision to know what you want or you don't have the tenacity to stick with it till you get it. I've had a bit of both in my goals over the years so I can relate a bit. The key question is how much are you letting other people dictate your life? Are you substituting their judgment for your own frequently?

If you want a suggestion for help look into Assertiveness and Emotional Intelligence as I suspect those would help you navigate your way through life.

share|improve this answer

I've been suffering the same problem for the last few years without realizing it. It comes down to this: You will not be happy putting everyone else first and everything in your life will suffer for it, including your passions. If you're to a point that you put most or all of your self worth into how well you perform, any kind of failure or setback will cripple you. Build your self worth first and these setbacks won't affect you anywhere near as severely.

It hasn't been easy so far, but its worth it.

Good luck.

share|improve this answer

You've got to find what you love - I'm borrowing this opinion by someone who was very successful, Steve Jobs.

In his Speech at Stanford (2005) he says that every little thing you do (even if it does not seem to make sense (in a life-changing way) to you the moment you do it) influences your future life and might be useful some time. And he states that if you keep searching what you love, you'll be successful in what you do.

So you should not let your life being influenced by what others say, especially if it is only their opinion and not based on facts, but follow your interest and intuition.

share|improve this answer

So many lives and career's are destroyed by listening to what other people say.

Not saying that it isn't true, but that as a programmer your job has to be about constant learning and improving your skill and experience set.

The more language's you learn, the easier it becomes, because each language teaches enough important concepts that translate through many languages.

But I highly recommend that you find people who are experts in whatever language you want to learn, and see what lessons you can from watching them work or talk or speak.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.