Seems to me the article is fighting some kind of giant strawman. I myself haven't experiences this kind of attitude.
I really don't get what the point is, that some people have ego problems and hold pissing contests to see who is the most "awesome programmer"? Well that's a different thing, kind of "who's the best".
Well for sure if you ask people in an office what their job is then I don't think that a banker who creates complex spreadsheets calls himself a programmer per se... Even though he for sure programs a computer.
I would maybe categorize people in two categories, those who enjoy programming for itself (learning different languages and technologies) and those who use it to get some specific task done. This of course has nothing to do with being a "true programmer" :)
It's a thing I keep running into over and over again. I'm really happy that you haven't and that for you personally this is not an issue. Unfortunately your sample of '1' may not be representative.
Well I'll add my sample size to make it a sample of 2.
I don't really see people being told they cannot code. I see them being encouraged and encouraged... And they give up.
Because coding longer term often is a Temperament thing. The person learning.has to persevere banging their head against a brick wall ( their own skill, the lack of feedback from computers ) day in and day out.
That's not for everybody.
I am bemused that coding has such a mystique when in reality coding is something akin to metalwork combined with plumbing. Not everyone wants to be a plumber either, but most people could do a reasonable job if given a crash course and some context to use it in
None of these things are magic. None of these things are something someone can't learn "a little" about.
And yet, like programming, all of these require a great deal of effort to master any degree of proficiency; this 1) takes individual dedication, and 2) is undermined for individuals when they're told repeatedly and incorrectly that being a "programmer" is a label, and that it's easy.
As an example of what I mean, the word 'mathematician' usually refers to someone who works as an academic in a University department and teaches advanced mathematics and who contributes research. This is hard, requires considerable focus and dedication.
Most people in societies with good educational systems can do mental arithmetic, and a majority could learn to apply mathematical results to situations e.g. at work if they needed to. Some countries have invented a special words for this latter kind of maths use - 'numeracy' and 'functional skills' are in use in the UK.
So again the word 'programmer' or its various synonyms covers your case - a 'programmer' helps to produce complex software as part of a team (usually) and spends most of their time on that.
Other people may do tasks that look a bit like the easier bits of programming as a smaller part of their job. OA mentions complex spreadsheets (and wow can they get complex but that is often part of the problem) and I'd go so far as to include a bit of bash, and perhaps a few lines of python to help in administration tasks.
Perhaps it is the last activity that we need a word for?
I absolutely ran into it when teaching myself programming, but it really isn't specific to programmers. I had conversations go boil down to:
Me: "I'm learning programming"
Programmer: "Good luck with that (sarcasm)"
These people were dicks. I met WAY more positive and accepting people in tech during my transition, but there is still an elitist group that thinks it is special. This mentality exists everywhere, but tech seems to be special. Developers are in demand, many people don't fully understand what we do, and even when you "get your foot in the door" people..including folks on HN btw.. throw out things like "I hate pretend programmers".
>Me: "I'm learning programming" Programmer: "Good luck with that (sarcasm)"
If they're actually sarcastic, they're dicks, but a slightly skeptical "good luck with that" is a pretty appropriate response for someone that has just started at a major task. Same thing if you tell me you're going to write a novel; I encourage you, but I don't assume you will automatically make it.
>throw out things like "I hate pretend programmers".
Does pretend programmer mean someone that's learning or someone that lies about what they've already learned? I've only seen derision toward the latter, someone that claims to be an experienced coder but can't code the simplest of functions.
Well dicks are everywhere. Like the problem with how females are treated "in tech", well big news, women are treated badly in all male dominated fields (and pretty much elsewhere also). You think they have it easy working on a factory floor?
But in tech these things are more in the open what with our hacker news and blogs etc, and because most of people in this field actually are good people and care about this stuff and want to deal with the issues!
I myself haven't met any "elitist programmers", just regular joes (and janes!) doing their job. On the other hand I also don't operate in SF in some tech bubble i've been hearing about :)
> Me: "I'm learning programming" Programmer: "Good luck with that (sarcasm)"
Try to look at this from the programmer's point of view for a moment. Programming is a vast subject, where you're going to be constantly learning for as long as you program. It's impossible to learn programming entirely: we still don't know how to program to get the best results, we're continuously defining the field as we go on. And that's even before you take Computer Science into account!
Granted, being a dick is not a good thing, but after a while it's also hard to be enthusiastic about people who tell you they're going to learn programming. Especially if they have no idea yet about how programming is like in the "real world". Most of them are going to - in my experience - run away screaming when they see the reality of programming. And that's even before talking about how programming jobs look like.
Personally I try my best not to be sarcastic when talking to beginners, but I do try to warn them that it may be harder than they think.
>Seems to me the article is fighting some kind of giant strawman. I myself haven't experiences this kind of attitude.
For real? Because it shows up in HN all the time.
E.g. for what he writes:
>The IT world is rife with this ‘no true programmer’ nonsense, the ‘real’ programmers are the ones that have mastered ‘x’ (insert name of arcane and difficult to use programming language here), the rest is still stuck on ‘y’ (insert accessible and easy to use language here). The latter of course aren’t real programmers, if they were then they would get it.
> But that’s total nonsense. It’s like saying that there are only two kinds of people when it comes to swimming, those that can learn how to swim and those that can’t
It is a career advice. While most people can learn to swim, professional swimming is completely different level. If my friend is going to waste years of life and thousands of dolars to study wrong field, I would be very bad friend not to warn him.
BTW: I really wish someone would have told me early I suck at math and there are no jobs in physics. That would have save me a decade of my life.
As an ex-lifeguard, when you talk about 'career advice' I think you are referring to professional competitive swimming as a career. I tried out for the swim team, but endurance and strength needed to be a lifeguard aren't the same as competitive speed.
A lot more people are professional lifeguards than professional competitive swimmers. I think most people can train and qualify to be a lifeguard - otherwise lifeguard pay would be a lot higher. It does not cost that much to become qualified as a lifeguard for someone who is already a strong swimmer.
There are also other fields, like professional diving, where swimming is an important component, though diving does require more expensive training.
I think this ties back to the original essay - there are many professions where knowing how to swim is critical, but the specifics differ, and the same is true in programming.
> There are even studies on the subject to prove that there are ‘two kinds of people, those that can program and those that can never learn it no matter how much effort they put into it’
It is quite refreshing to see someone take some responsibility for their lives while they were unhealthy, I must admit. This retraction is one of the most noble things I've seen in this realm in a long time..
I continue to believe, however, that Dehnadi had uncovered
the first evidence of an important phenomenon in programming
learners. Later research seems to confirm that belief.
From my observations, the 'No true X' Fallacy comes into play when a person identifies himself with his skill...it becomes his identity so much that if he encounteres someone better at "his" skill, he feels his identity threatened.
This arises when the person does not really have a lot of properties associated with his identity. I saw a lot of people who were really insecure in other areas of life besides the area where their skill applies. The insecurities vanish really fast as soon as this skill is seen only as skill and the person identifies its identity with the proper properties like values, e.g. "I am friendly" instead of "I am a true programmer". Therefore I cannot imagine this being a healthy discussion.
For the ones interested in how to get a better identity and get rid of insecurities, take a look into steve andreas book "transforming yourself". You will also learn the basics of Neurolingual Programming (NLP) as a side effect
If you will learn NLP as a side effect, I would avoid the book as a plague. If
the author puts such a big lie as NLP, who knows what else is false in the
book?
I do not know what experiences you made so that you think NLP is "such a big lie". It is a toolbox of methods which generally do work. Many of them are applied in behavioral therapy, which is proved to have an outstanding effect on depression (as one example).
The nice thing is that you do not have to study psychology for that, but have simple methods, which are almost common sense, to deal and/or transform most psychological issues.
If that were so, then could you explain the section at https://en.wikipedia.org/wiki/Neuro-linguistic_programming#S... ? Pulling three quotes from it, "controlled trials failed to show any benefit from NLP", "Numerous literature reviews and meta-analyses have failed to show evidence for NLP's assumptions or effectiveness as a therapeutic method", and "Among the reasons for considering NLP a pseudoscience are that evidence in favor of it is limited to anecdotes and personal testimony".
What evidence was enough for you to conclude that the methods "generally do work"?
I do not know how NLP is taught right know, however I'll explain how I come to that conclusion with a reference to the mentioned book from steve andreas.
One of the basic tools of NLP is what is called "anchoring". An anchor is an association in terms of action->response. One example lots of people can associate with is: You hear a song and have instantly a mood change. You could feel very happy, because you remember meeting your spouse for the first time when this song was played. Or maybe you feel bad because something bad happened when you heared that song and associate the bad feelings with that song.
One way to break away from a specific "action->response" pair is by using a pattern interrupt and overwriting the usual response with another response. You do that regularly yourself, for example when you learned a false fact and correct it afterwards.
Of course you can also create new associations. You probably do not have any strong feelings associated with a song when hearing it for the very first time, but you can associate something with it.
Anchoring, pattern interupts and overwriting old anchors is heavily used in behavioral therapy, and is also the basic concept for a lot methods in NLP.
For me the parallels to behavioural therapy are why I conclude "generally do work".
I think the bad reputation NLP is receiving is because of "hype-riders", people who want to rip the help-seeking people off their money. And as you do not have to study psychology to practice NLP (or say you can do NLP), charlatants have an easy entry.
In Steve Andreas book, you learn how to rewrite old anchors effectiveley, specifically the ones that make up your identity, the "how you know you are you".
Example Scenario:
Current situation: Suppose you think you are bad at maths and that is simply your personality, that's why you will never solve any math problem in reasonable time.
Effect: You will not even try to solve math problems or will not have fun doing it, thus taking more time or limiting yourself in other areas as well as panicing as soon as you see a math problem.
How you change that? ->
1) Think about how you know you are bad at maths.
2) Do you imagine one or multiple situations where you were bad at maths? Are these pictures or video? How are they organized in your head? In color or black/white? Big/small?
3) Now take every example in your head that support that belief and change the modalities. Already at that point you will notice with each transformed example, that you feel less bad about maths.
4) Next you build positive images around maths in the same way as before, thinking about situations where you were good at maths and transform your images to the same modalities the bad images were before.
5) Pro step: Build values for yourself such as: intelligent, resilient, motivated and associate these values with situations were they helped you in solving math problems or other problems. This would decouple your identity from "maths" and help you not fall into panic as soon as you encounter a math problem or any other problem you think you are not good at (remember, you are intelligent, resilient and motivated?)
I do not know if specifically this technique with exactly these steps is used in todays scientific therapy. However, it is based on anchoring/overwriting old anchors and I do not see much novelty there.
Once upon a time we (that is, general medical consensus in the US) thought that milk would help treat ulcers, and that ulcers were mostly due to diet or lifestyle (overwork, smoking, etc). There was a model of how milk would be a good treatment, and doctor would recommend milk to patients with ulcers.
Starting a few decades ago, we found that "the vast majority of ulcers are caused by H pylori infection" (quote from http://www.ulcerresourcecenter.com/ulcers-and-milk ), and can be treated with drug therapy.
I point this out as an example of how even if there is a reasonable mechanistic model of how a therapy might work, which is widely believed to be true, that doesn't mean it is true. The Wikipedia link I posted gives reference to attempts to verify if NLP is a useful treatment, and concluded that it isn't.
As for "pattern interrupts and overwriting old anchors is heavily used in behavioral therapy", if you search for '"pattern interrupts" "behavioral therapy"' on Google there are very few hits. Duck Duck Go has even fewer. This suggests that "pattern interrupts" is not a term used in behavioral therapy. If you further look at http://www.ncbi.nlm.nih.gov/gquery/?term=%22pattern+interrup... you'll see that "pattern interrupt" is not commonly used, with only 214 matches in PubMed. A spot check shows only a handful used in the sense you mean.
Therefore, the term "pattern interrupts" is likely not the term used in behavioral therapy. You are, I believe, making a statement about a homologous treatment, perhaps operant conditioning? But operant conditioning, and its application, predate NLP, so I don't think it's reasonable to attribute its effectiveness to NLP, nor would it be novel in NLP if Skinner discussed it in the 1950s.
("Operant conditioning" has 18356 matches in PubMed, and the first 7 papers all use it in the cognitive psychology sense.)
I looked at your first URL. My earlier comments hold.
For example, it says (concerning using mental imagery) "This result comes as no surprise to anyone with even basic training in NLP. Imagining “themselves performing this act, with as much sensory detail as possible” has been a standard and essential part of rehearsing or “future-pacing” any behavioral change."
A quick search shows that behavior rehearsal was part of non-NLP since at least the early 1970s. See for example http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1311981/ , "Training predelinquent youths and their parents to negotiate conflict situations":
> In response to parental requests for assistance in dealing with adolescent problem children, three parent-child pairs were taught negotiation responses to hypothetical conflict situations using behavior rehearsal and social reinforcement. The negotiation process was separated into component behaviors that were practised during simulations by each youth and his parent under the direction of trainers. Results indicated that (a) the procedures were successful in training youths and their parents in negotiation behaviors that produced agreements to conflict situations, and (b) these behaviors generalized to actual conflict situations in subjects' homes.
> It was concluded that repeated behavior rehearsal, both in the clinic and in real life is a cost-effective treatment procedure for many social phobias. The approach is straightforward and can be applied by nonprofessionals, including the patients themselves, after limited training and with minimal supervision.
Further, the original synopsis at http://digest.bps.org.uk/2011_06_01_archive.html points out that it's not just imagery which is important, but that there was question: why was there a seeming
> contradiction with earlier research showing implementation intentions are most helpful to those with compromised willpower? Churchill and Jessop can't be sure, but they said one possibility could be because their task of eating more fruit and veg is more complex than some of the lab tasks studied previously.
The summary of the summary at realpeoplepress.com leaves out these complexities.
To sum up, you say that a technique which NLP uses was non-NLP before and works, that's why NLP is not scientific?
Maybe I'm too tired right now, but for me that's a clearer NLP pro argument than I could come up with.
Anyway, I'm not really interested in who is right or wrong. I think NLP works and whoever wants to try it should do it, but be careful not to learn from charlatans. These who want to wait for scientific evidence can also do so.
Here's an analogy. In some churches, the faithful will kneel in order to pray. Now I come along and say that praying 200 times per day will lead to better health. We put this to a test, and find it's true. But there are conflating factors - is it the praying, or the physical exercise through kneeling, or doing it in a church, or all of the above, which lead to the outcome?
A Kneelologist could stop, be happy that it works, and promote Kneelism as a healthy activity. But a non-kneelologist could point out that it's similar to calisthenics, which was already known to give similar positive results, is simpler to understand because it doesn't require the prayer component, and can done by people who are against prayer or don't have ready access to a church.
(Or for a real world example, the asanas from hatha yoga are used as exercise, and called 'yoga' even though yoga is a much broader topic.)
The scientific approach would address some important factors: 1) is the effect real and reproducible?, 2) when should be be used instead of other forms of treatment, and 3) what are the possible conflating factors and can we disentangle them to improve 1) and 2)?
Applying that to NLP, and making this up because I don't know the details. What if NLP is an incorrect synthesis of real-world observations that were already known at the time NLP was developed? In that, the ability of NLP to predict similar effects is not surprising. Other psychology models developed since Bandura's work in the 1960s also need to "predict" that behavior rehearsal can be an effective treatment.
Instead, what new predictions does NLP make which are different from other behavioral models? Can those predictions be tested? Or failing the ability to make new predictions, is it a simper model which it at least equally effective as other models in describing behavior?
That's where the science comes in.
NLP might work. But so might cognitive psychology, and with seemingly fewer worries about charlatans.
What's more, NLP was not really developed. The techniques have been copied - or "stolen" - from other approaches, starting with Gestalt therapy. Therefore it's not a simple coincidence that you encounter similar techniques elsewhere.
Also, does NLP really need to bring novel ideas for it to be recognized? It does not promise anything like that, because that is not it's goal. NLP is about stealing what works to extend its "toolbox". That is also one of the points why it is considered being a pseudo science, "copying what works" is not scientific. In my opinion, not focusing on science is a major flaw of NLP. Therefore I hope that the NLP research organisation or others will change that.
Also, like you said, it is also possible that there are flaws in the copies, i.e. by making wrong conclusion from the observations. I would find it interesting to compare the NLP versions with the scientific versions to find the differences and maybe correct one or the other model after running some tests.
Btw. Do you know if depression or PTSD therapy based on the "scientific" psychoanalysis does yield results today?
"does NLP really need to bring novel ideas for it to be recognized?"
Of course not. It could be synonymous with "best practices." But even if it were identical to best practices, it uses set of unique terminology which makes it harder to understand. Why does it do that?
That I do not know.
However, that is not always the case. AFAIK Hypnosis after Milton H. Erickson is also part of NLP and similar terminology (if not the same) is used there.
It's not about being a dick and discouraging people who want to learn programming but they should know in what they are getting into: programming is hard and the learning process is a long road of many years.
It's important to distinguish being a programmer at all and being a very good programmer.
Even Norvig (condescendingly) concedes that idiot dummies can become bad programmers. The point he misses, is what Jacques refers to a brain amplification and Excel programming: even a bad programmer can reap significant benefits from programming.
My favourite consulting gig, about ten years ago now, was for some friends of a friend. They were not very technical, most of them history graduates, who'd taught themselves just enough PHP to cobble together an online history text book in an open source CMS - and sold it to a bunch of schools, and their server was now positively on fire. I helped them move to a bigger server, and migrate their search from the CMS' awful MySQL based homebrew to Solr, and they lived to fight another day.
Norvig can call them idiot dummies from his ivory tower all day long, but these guys created a business from nothing, and it's still around today.
Do we call people that put together chairs structural engineers? Do we call baristas chemists? Baseball players physicists?
Words exist for a reason, and using a spreadsheet does not make you a programmer. However I can already see that programmer is being diluted to mean anyone proficient with a computer. What term should we use for people that can write software? 'Software engineer' feels like overkill for writing small self-contained scripts.
> What term should we use for people that can write software?
I don't think there's a need for a word, just as there is no word for a person who can swim (swimmer implies they do it regularly) or a person who can assemble IKEA products.
So you're saying that someone writing a small self-contained script is a programmer, while someone who constructs a complex, multi-layered spreadsheet with complex functions, graphs and formatting isn't?
I agree strongly with Jacques Mattheij. Part of the programmer superiority (especially HN readers) syndrome is driven by fear; they consider themselves special and enlightened and "better" than others, and fear that teaching anyone to be a programmer will undermine their value.
I have seen it repeated multiple times here, in the context of the value of "unskilled" labour, that you are not adding any value if you are digging up a ditch and working hard to fill it over and over again. The automatic assumption is that programmers are providing more value. However, if you are writing hello world (or a slightly more complex program) in a new cool shiny language over and over again, then you are not adding any value just like any other labourer.
This reminds me a lot of a friend of mine who is a brilliant designer and also very technically adept. She couldn't build an operating system, but she could build a responsive website in 1/20th the time I could. Yet she's asked me "Am I not technical? I'm getting interviewed as a non-technical founder". This "hard core" massochim pissing contest really needs to stop. It feels like we've bonded with peers who also felt excluded growing up and we've turned this exclusion into a rite of passage rather than distancing ourselves from it.
Well, playing Devil's advocate, is the "technical" in "technical founder" a description of the person, or of the role?
I mean, if she starts a tech company with someone, what will she be doing all day? It seems to me that designing the company's website, while doubtless a technical task, would only take a small section of her time. If she does non-technical stuff the rest of the time, is she really filling the role of a technical founder?
This isn't a slight at her, just a difference in what we understand the "technical" to mean. I'm not sure I'd consider even Linus Torvalds a "technical founder" if his role involved almost no programming.
99% of technical co-founders couldn't build a working operating system either. It's a very different set of skills from building a web or mobile app, and requires a lot of knowledge of how hardware works - interrupts, memory protection, device drivers, etc.
> And let’s not kid ourselves, very very few people are programmers at the level of a Linus Torvalds, Peter Norvig or Fabrice Bellard. Imagine them telling you that you’re hopeless and you’ll never really get it so you might as well give up now.
I think this is a great point that deserves repeating.
> very few people are programmers at the level of a Linus Torvalds, Peter Norvig or Fabrice Bellard.
I never really thought of Peter Norvig as a 'programmer' in the sense of Linus Torvalds -- I always lumped Norvig more into the high minded computer scientist camp. It seems like the criteria by which one judges success in the two areas are very different.
Putting programmers on a pedestal fits with the YC culture of marketing via lionization of technology personalties, but it's counter-productive if your aim is to actually grow in the field.
Hero worship blinds you to two simple facts, in almost all cases:
- They're not doing anything you couldn't also do if you worked at it as hard as they have.
- Like everyone, they're fallible, making mistakes, and may even not deserve the hero worship being heaped on them. Until you've worked as hard as they have to reach a sufficient level of understanding, you're not going to have as strong of a critical eye for where the erstwhile hero is doing it wrong.
Better to put no-one on a pedestal (least of all yourself).
I'm not putting him on a pedestal at all. He's by objective standards simply one of the best programmers that I know of, just like Usain Bolt is an extremely fast runner.
I'm sorry to disagree but you're wrong. There are better programmers than I, that no matter how hard I work I will never be as good as. Not everyone can be a Mozart or Mozart wouldn't be special.
> In general, for an imperative language to be Turing-complete, it needs:
1. A form of conditional repetition or conditional jump (e.g., while, if+goto)
2. A way to read and write some form of storage (e.g., variables, tape)
For a lambda-calculus–based functional language to be TC, it needs:
1. The ability to abstract functions over arguments (e.g., lambda abstraction, quotation)
2. The ability to apply functions to arguments (e.g., reduction)
--
Note that you can be a programmer without ever having touched a computer, people have been coming up with algorithms and integrating them into systems for ages.
> Note that you can be a programmer without ever having touched a computer, people have been coming up with algorithms and integrating them into systems for ages.
Slightly different, but the first episode of SICP videos helped me to reach the same conclusion:
"... wrote programs". I think it's better to say they wrote algorithms. A program is an algorithm instantiated for use by a machine, which might be analog or digital.
I can accept the argument that a human following an algorithm emulates a machine, but I consider it an imperfect analogy.
>If you say someone isn’t a real programmer then you’re falling right into the No True Scotsman fallacy, where say making a spreadsheet is ‘not true programming’ because ‘No True Programmer’ would use a spreadsheet to solve a problem. But in my eyes being able to use a spreadsheet is already one step up the ladder and it does make you a programmer.
That's overcorrecting. Spreadsheets are a huge category. You can perform programming activities in spreadsheets and you can perform non-programming activities in spreadsheets.
Gatekeeping this profession seems overly ridiculous considering how excessively poorly we all are at practicing it. What is that saying about people yelling the loudest when the differences are smallest or something? It strikes me as some sort of compensation mechanism. Most of our code sucks, just really, honestly sucks. The number of software projects in history that have been done to the best capabilities that time and money would allow is an appallingly low number. Almost every software development effort involves a disturbing amount of half-assery. The amazing thing is that despite this it's possible to produce things that work and have considerable value. But there are so many ways we could do better, I wish more people would concern themselves with that rather than trying to ride the bleeding-edge of coolness or to prop up their personal identity as a "legitimate programmer" by playing the exclusion game.
This is a discussion that happens in a lot of different fields of practice. In medicine, you might have the argument over to what extent chiropractors or naturopaths are physicians; /r/justrolledintotheshop, one of my guilty pleasures, has recurring posts about embarrassing things that shadetrees have done. Right now they're doing the, "hah, car mechanics? Try being a boat mechanic! Hah, boat mechanic? Try being a diesel mechanic! Hah, diesel mechanic?..." It's all pretty light-hearted, one of the reasons that I like that sub, but still, there are similarities.
I get where they're coming from. I've put some effort into teaching programming to other people too: young kids, guys with electronics backgrounds but not software, even a homeless kid. I look at programming as a skill, like dancing, martial arts, or swimming, that can be practiced and improved for anyone that wants to put the time in to it.
But then sometimes I find myself on the other side of the fence, where a project is being made a lot more difficult by someone because, "I know Wordpress, so I'll just handle this complicated not-Wordpress-related hosting issue myself." Or, "my system was acting strange recently, and I saw this thing about hackers on NCIS, so I..."
So that's where I start to have a problem with thinking of spreadsheets as programming. Technically, Jacques is right, it absolutely is. People do hilariously incredible things with Excel -- even flight simulators! (https://www.youtube.com/watch?v=AmlqgQidXtk) But it's also not the same as developing an api or wrangling some other more advanced project, and when the people you're working with understand programming to be as difficult as a spreadsheet, it can make for some hopeless no-win situations.
At least in martial arts, if you decide to spar with somebody that's a lot more advanced than you, you'll learn your mistake pretty quickly. If you practice swimming in a backyard pool and then decide to have a go at the ocean, you'll have a pretty sobering experience if you're lucky. But in software, it's possible to muddle along for quite a long time, making a really expensive mess, before you realize that you're in over your head. (Which probably most of us have done at some point.)
It works the other way too. If instead of thinking of yourself as a programmer you think: "I solve problems" You can broaden your reach. There was a time when I was reluctant to work on something because I couldn't use C++ !
Well for sure if you ask people in an office what their job is then I don't think that a banker who creates complex spreadsheets calls himself a programmer per se... Even though he for sure programs a computer.
I would maybe categorize people in two categories, those who enjoy programming for itself (learning different languages and technologies) and those who use it to get some specific task done. This of course has nothing to do with being a "true programmer" :)