From non-IT background to being a programmerIncorrect Graduation Date on Resume - Background checkNon-specific career goalsStart date of new job being pushed back due to uncompleted background checks - what should I do?Breaking into a large organisation from a tech start up backgroundNon-manager feedback and career advancement
What is causing gaps in logs?
Given a specific computer system, is it possible to estimate the actual precise run time of a piece of Assembly code
Quick Slitherlink Puzzles: KPK and 123
How do you manage to study and have a balance in your life at the same time?
Function of the separated, individual solar cells on Telstar 1 and 2? Why were they "special"?
Should we run PBKDF2 for every plaintext to be protected or should we run PBKDF2 only once?
Using font to highlight a god's speech in dialogue
Visiting girlfriend in the USA
Tasha's Hideous Laughter used on a deaf person?
Why are direct proofs often considered better than indirect proofs?
D Scale Question
'spazieren' - walking in a silly and affected manner?
Killing task by name - start menu shortcut
An alternative to "two column" geometry proofs
How can I portray a character with no fear of death, without them sounding utterly bored?
How do I get my neighbour to stop disturbing with loud music?
Can UV radiation be safe for the skin?
Missing $ inserted. Extra }, or forgotten $. Missing } inserted
Divide Numbers by 0
What is the motivation behind designing a control stick that does not move?
What happens if you just start drawing from the Deck of Many Things without declaring any number of cards?
Blogging in LaTeX
The 7-numbers crossword
How to find better food in airports
From non-IT background to being a programmer
Incorrect Graduation Date on Resume - Background checkNon-specific career goalsStart date of new job being pushed back due to uncompleted background checks - what should I do?Breaking into a large organisation from a tech start up backgroundNon-manager feedback and career advancement
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
I was a factory worker for many years. It was not until recently that I was hired as a developer in a huge company. I was hired largely because I have an app and a portfolio to show.
Now that I've started, I can't shake the overwhelming feeling that I don't belong. Everyone else has an exceptional background and some are fresh out of college. Everyone else have backgrounds with computers, but I'm the only one who does not.
I learned to program and to build apps by myself. I've never done the things that coworkers talk about and do, like test-driven development and unit testing. I just build, and build, and refactor as needed. I've also never worked in a team like this. I always did my programming alone; now I have to talk to— and deal with people, who think they are far better than me.
My questions are:
- How do you get rid of imposter syndrome?
- How do you deal with egotistical coders who thinks you're no good because of your background?
- What impact do you think it would be if a lot of people at my workplace know that I don't have a computer technology background?
career-development careers
|
show 9 more comments
I was a factory worker for many years. It was not until recently that I was hired as a developer in a huge company. I was hired largely because I have an app and a portfolio to show.
Now that I've started, I can't shake the overwhelming feeling that I don't belong. Everyone else has an exceptional background and some are fresh out of college. Everyone else have backgrounds with computers, but I'm the only one who does not.
I learned to program and to build apps by myself. I've never done the things that coworkers talk about and do, like test-driven development and unit testing. I just build, and build, and refactor as needed. I've also never worked in a team like this. I always did my programming alone; now I have to talk to— and deal with people, who think they are far better than me.
My questions are:
- How do you get rid of imposter syndrome?
- How do you deal with egotistical coders who thinks you're no good because of your background?
- What impact do you think it would be if a lot of people at my workplace know that I don't have a computer technology background?
career-development careers
9
Perhaps step back and consider that the reason that your relationship with your co-workers might not be great is because your attitude towards them is bad.
– Philip Kendall
18 hours ago
2
@PhilipKendall That's a pretty harsh assumption, what do you base it on?
– jpatokal
18 hours ago
2
deal with people who thinks they are far better than you
did they tell you so? Or is it just your imagination? Or even if it was true...why does it matter? Maybe they really are. Why can't they be better? And you can learn a lot from them. If they say things like "what you don't even know THAT?" then it's on them, not you.
– Billy.Bob
17 hours ago
2
What some people call "big egos" or "egotistical coders" others could say is confidence or a strong drive for success. Either way it can be interpreted positively or negatively. But why be so judgmental?
– Robert Andrzejuk
11 hours ago
5
"I am ... new ... I can really tell people who are full of themselves" It's statements like these that always make me suspicious. There's a proverb where I come from, which roughly translates to: "The thief judges based on his own condition". It means that people generally judge others based on how they themselves behave towards them. (Think of the liar that always thinks everyone else must be lying to them.) Being new there, maybe you do need to take a step back, get to know them better, and account for work environment/cultural differences before rushing to judgement so quickly?
– code_dredd
9 hours ago
|
show 9 more comments
I was a factory worker for many years. It was not until recently that I was hired as a developer in a huge company. I was hired largely because I have an app and a portfolio to show.
Now that I've started, I can't shake the overwhelming feeling that I don't belong. Everyone else has an exceptional background and some are fresh out of college. Everyone else have backgrounds with computers, but I'm the only one who does not.
I learned to program and to build apps by myself. I've never done the things that coworkers talk about and do, like test-driven development and unit testing. I just build, and build, and refactor as needed. I've also never worked in a team like this. I always did my programming alone; now I have to talk to— and deal with people, who think they are far better than me.
My questions are:
- How do you get rid of imposter syndrome?
- How do you deal with egotistical coders who thinks you're no good because of your background?
- What impact do you think it would be if a lot of people at my workplace know that I don't have a computer technology background?
career-development careers
I was a factory worker for many years. It was not until recently that I was hired as a developer in a huge company. I was hired largely because I have an app and a portfolio to show.
Now that I've started, I can't shake the overwhelming feeling that I don't belong. Everyone else has an exceptional background and some are fresh out of college. Everyone else have backgrounds with computers, but I'm the only one who does not.
I learned to program and to build apps by myself. I've never done the things that coworkers talk about and do, like test-driven development and unit testing. I just build, and build, and refactor as needed. I've also never worked in a team like this. I always did my programming alone; now I have to talk to— and deal with people, who think they are far better than me.
My questions are:
- How do you get rid of imposter syndrome?
- How do you deal with egotistical coders who thinks you're no good because of your background?
- What impact do you think it would be if a lot of people at my workplace know that I don't have a computer technology background?
career-development careers
career-development careers
edited 39 mins ago
atk
2,3031 gold badge15 silver badges21 bronze badges
2,3031 gold badge15 silver badges21 bronze badges
asked 18 hours ago
TifaTifa
3853 silver badges11 bronze badges
3853 silver badges11 bronze badges
9
Perhaps step back and consider that the reason that your relationship with your co-workers might not be great is because your attitude towards them is bad.
– Philip Kendall
18 hours ago
2
@PhilipKendall That's a pretty harsh assumption, what do you base it on?
– jpatokal
18 hours ago
2
deal with people who thinks they are far better than you
did they tell you so? Or is it just your imagination? Or even if it was true...why does it matter? Maybe they really are. Why can't they be better? And you can learn a lot from them. If they say things like "what you don't even know THAT?" then it's on them, not you.
– Billy.Bob
17 hours ago
2
What some people call "big egos" or "egotistical coders" others could say is confidence or a strong drive for success. Either way it can be interpreted positively or negatively. But why be so judgmental?
– Robert Andrzejuk
11 hours ago
5
"I am ... new ... I can really tell people who are full of themselves" It's statements like these that always make me suspicious. There's a proverb where I come from, which roughly translates to: "The thief judges based on his own condition". It means that people generally judge others based on how they themselves behave towards them. (Think of the liar that always thinks everyone else must be lying to them.) Being new there, maybe you do need to take a step back, get to know them better, and account for work environment/cultural differences before rushing to judgement so quickly?
– code_dredd
9 hours ago
|
show 9 more comments
9
Perhaps step back and consider that the reason that your relationship with your co-workers might not be great is because your attitude towards them is bad.
– Philip Kendall
18 hours ago
2
@PhilipKendall That's a pretty harsh assumption, what do you base it on?
– jpatokal
18 hours ago
2
deal with people who thinks they are far better than you
did they tell you so? Or is it just your imagination? Or even if it was true...why does it matter? Maybe they really are. Why can't they be better? And you can learn a lot from them. If they say things like "what you don't even know THAT?" then it's on them, not you.
– Billy.Bob
17 hours ago
2
What some people call "big egos" or "egotistical coders" others could say is confidence or a strong drive for success. Either way it can be interpreted positively or negatively. But why be so judgmental?
– Robert Andrzejuk
11 hours ago
5
"I am ... new ... I can really tell people who are full of themselves" It's statements like these that always make me suspicious. There's a proverb where I come from, which roughly translates to: "The thief judges based on his own condition". It means that people generally judge others based on how they themselves behave towards them. (Think of the liar that always thinks everyone else must be lying to them.) Being new there, maybe you do need to take a step back, get to know them better, and account for work environment/cultural differences before rushing to judgement so quickly?
– code_dredd
9 hours ago
9
9
Perhaps step back and consider that the reason that your relationship with your co-workers might not be great is because your attitude towards them is bad.
– Philip Kendall
18 hours ago
Perhaps step back and consider that the reason that your relationship with your co-workers might not be great is because your attitude towards them is bad.
– Philip Kendall
18 hours ago
2
2
@PhilipKendall That's a pretty harsh assumption, what do you base it on?
– jpatokal
18 hours ago
@PhilipKendall That's a pretty harsh assumption, what do you base it on?
– jpatokal
18 hours ago
2
2
deal with people who thinks they are far better than you
did they tell you so? Or is it just your imagination? Or even if it was true...why does it matter? Maybe they really are. Why can't they be better? And you can learn a lot from them. If they say things like "what you don't even know THAT?" then it's on them, not you.– Billy.Bob
17 hours ago
deal with people who thinks they are far better than you
did they tell you so? Or is it just your imagination? Or even if it was true...why does it matter? Maybe they really are. Why can't they be better? And you can learn a lot from them. If they say things like "what you don't even know THAT?" then it's on them, not you.– Billy.Bob
17 hours ago
2
2
What some people call "big egos" or "egotistical coders" others could say is confidence or a strong drive for success. Either way it can be interpreted positively or negatively. But why be so judgmental?
– Robert Andrzejuk
11 hours ago
What some people call "big egos" or "egotistical coders" others could say is confidence or a strong drive for success. Either way it can be interpreted positively or negatively. But why be so judgmental?
– Robert Andrzejuk
11 hours ago
5
5
"I am ... new ... I can really tell people who are full of themselves" It's statements like these that always make me suspicious. There's a proverb where I come from, which roughly translates to: "The thief judges based on his own condition". It means that people generally judge others based on how they themselves behave towards them. (Think of the liar that always thinks everyone else must be lying to them.) Being new there, maybe you do need to take a step back, get to know them better, and account for work environment/cultural differences before rushing to judgement so quickly?
– code_dredd
9 hours ago
"I am ... new ... I can really tell people who are full of themselves" It's statements like these that always make me suspicious. There's a proverb where I come from, which roughly translates to: "The thief judges based on his own condition". It means that people generally judge others based on how they themselves behave towards them. (Think of the liar that always thinks everyone else must be lying to them.) Being new there, maybe you do need to take a step back, get to know them better, and account for work environment/cultural differences before rushing to judgement so quickly?
– code_dredd
9 hours ago
|
show 9 more comments
10 Answers
10
active
oldest
votes
Congratulations on been selected for the job!
You got hired because, you showed results of what you are capable of.
- Don't pretend to know things you don't.
- Be aware: others are also fighting imposter syndrome. You are not alone.
- This industry continually evolves. Everyone has to keep learning, or they fall behind.
- There will always be someone who knows something better than you, so don't worry about it.
- If others know a topic better than you, ask them to teach you something or ask for references.
- If You know something better, be open to requests to teach it.
- Just continue improving Your skills... until retirement day... And beyond ;-) .
add a comment |
There is a solution to these concerns: work hard and prove you are deserving to be there and deserve their professional respect.
As far as a non-IT background (prior professional experience an/or post secondary education), only elitist people care and this is their problem, not yours. What you are capable of doing is far more important. Two of the best programmers I ever worked with had NO formal college education; plenty of Masters degrees that were terrible.
add a comment |
Ultimately, you need two things. One is programming ability. If you did not have that to a really impressive extent, you would not have been able to produce a portfolio that would convince your employer to hire you. That is an achievement worthy of pride.
The other is background knowledge. Programming is sufficiently complicated that there is literally more to learn about it than can be learned in one lifetime. I've been learning to program off and on since 1967, and I'm not done yet. No matter what your education and experience, most colleagues will know something you don't. Everything you can learn from others is something you do not have to reinvent. Unit tests and TDD are useful techniques, so learn them, and apply them when appropriate. It does not matter if a colleague is silly enough to look down at you for a different background. Just learn whatever you can from them.
For now, learning on the job should be your main agenda. At some point, when you have settled in and sufficiently picked your colleagues' brains, consider taking some evening classes to get a more formal background.
Don't worry about coming from an IT background. Spend a year or so in the job you have, learning everything you can from it, and you too will have an IT background.
add a comment |
You have an app and a portfolio to show. You can write software. That means you are far ahead of many people applying to jobs, and ahead of quite a few people who get jobs.
"Fresh out of college" isn't exactly an "exceptional background". "An app and a portfolio to show" is a much better background. I have seen a small number of developers who came fresh from college and were good. I have seen many more who came fresh from college and were useless.
If anyone judges you by your background, they are stupid. If they say that they judge you by your background, they are stupid and deeply insecure. Someone who is confident in himself will judge you by how you do your job, and help you improve if needed.
add a comment |
I got hired because I have an app and a portfolio to show.
Always remember this. The company wouldn't have hired you if it didn't see any promise in you.
When I started I can't shake this overwhelming feeling that I don't belong to my job.
That will go away with time, as you settle into your new role.
But I was not doing any TDD or any unit testing.
That is ok, as long as you are willing to learn and implement them. Many companies don't do Tests, and use manual QA's instead, so take heart in the fact that you are at least getting to learn the best practices.
I also used to work alone and now I got to talk to and deal with people who thinks they are far better than you.
That is how most IT projects are structured - team work
is the key. It seems that you haven't developed this skill completely, so it would do well to be open and receptive to new ideas, and try to think team first over me first.
- How did you managed to get rid of imposter syndrome?
You remember that you are not alone in having the imposter syndrome. Everyone have their shortcomings. Maybe some of the other coworkers (SOTOCs) haven't struggled as hard in life as you. Maybe SOTOCs haven't worked on a project end to end by themselves. Maybe they believe there are other things they are not so good at.
There are things that you are good at, and there are things that they are good at. Your task is to learn the good practices from them to do your job better.
- How did you deal with egotistical coders who thinks you're no good because of your background?
Think with a cool mind, do these people appear egotistical just to you or everyone? In my experience, arrogant people / egomaniacs are that way with everyone, not just specific people.
If they behave that way with everyone, learn how others deal with them - could be by keeping communication professional and short, or talking to them after doing complete homework.
If they behave that way only with you, analyze what are the shortcomings in your communication, and try to overcome them. Maybe they expect you to do some self-research before asking questions, or be more observant in general about what they are talking. You mention not having had to talk to others previously, so maybe its causing frustration inside you? Think through it all.
- What impact do you think it would be if a lot of people at my workplace knows that I came not from an IT background?
I've worked with people who have had different backgrounds (not as factory worker, but not an IT worker either). In general, what matters is what they do at current job, rather than what their background is. As long as you are doing tasks right, it should not be much of a bother.
So don't worry about what would people think. Remember the first point, The company wouldn't have hired you if it didn't see any promise in you.
add a comment |
I'm one of many, many people who develop software without an academic background in it. (I got a GCSE in Computer Science, but didn't study it at A-Level — sorry, I don't know what the equivalent of those would be in other countries — and my degree was in Mathematics.) But I've been working in IT for two-and-a-half decades now, and still seem to be getting away with it!
I have no doubt that you know your stuff, and have the potential to be a great programmer. You wouldn't have been hired otherwise — and you wouldn't be asking here if you didn't care and want to be better. And those are probably the most important things!
None of us is perfect, and as long as you're aware of that, you're probably going to do fine.
I'll mention a few of the things that I'd tell the 21-year-old me — you can judge whether they apply to you at all. And because I've got pretentious in my old age, I'll use some quotes:
“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson & Sussman [preface to Structure And Interpretation Of Computer Programs]
It's really important for code to be as clear as possible. (Almost) anyone can write code that runs and does what it's supposed to; but it's really hard to write code that anyone else can read, understand, and work on. And you will be working with other people: you'll need to read and understand their code, and they yours. (And you'll need to read your own code, months or years down the line, so you'll be doing yourself a favour too!)
A more vivid way to put this is:
“Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.” — John Woods [comp.lang.c++]
On complexity:
“Everyone knows that debugging is twice as hard as writing
a program in the first place. So if you’re as clever as you
can be when you write it, how will you ever debug it?” — Kernighan & Plauger [The Elements Of Programming Style]
It pays to keep things as simple as you can. Simple code is easier to understand, easier to maintain and extend, and more likely to be correct in the first place. When you know advanced techniques and clever hacks, it's tempting to use them to show off. But resist the temptation!
Sometimes I think the most important — and difficult — task we programmers face is that of fighting complexity. In the face of increasingly complex and demanding requirements and requests, ballooning codebases, and ever-more-complex tools, keeping things simple is a real challenge, but it's vital!
“Be consistent.” — Larry Wall [the perlstyle manpage]
(Yes, you might well find that funny coming from him… :)
Consistency is really import in a codebase. No code is perfect, and the code you inherit will probably have unhelpful indentation and spacing, confusing names, out-of-date techniques, and/or worse. Many of those are worth fixing when you work on that code. But before you do, look around the codebase and see if those things apply everywhere. If so, grit your teeth and leave them alone — and even write new code in the same style. With a large codebase, a uniform style/naming/&c is much easier to read and work on than a patchwork of different styles — even if that one style isn't the best.
(That's not to say you should never look to improve existing code — just do it in a way that your colleagues will approve of.)
And finally, a point I don't have a quote for: always question requirements. Always ask “What's the ultimate goal here? What is this actually trying to achieve?” Because very often, what they've asked for won't actually do all they need it to, or will cause problems elsewhere, or will perform badly, or will add unnecessary complexity, or will be hard to maintain in future, or will prevent other planned improvements, or will take far more work than necessary. It still surprises me how often a bit of investigation can lead you to a different and much better solution.
— As I said, you may already be aware of some or all of these points. In which case, you're part-way to being a great programmer already! 😀
add a comment |
Congratulations! You're an adult human being!
That might sound flippant, but the problems you described are common to people with decades of experience and sizable bodies of work.
I attended an in-state university in a town with a better reputation as a "party town" than a "center of serious learning." I also worked my way through college, including doing blue collar work. Early in my career this wasn't a great thing, but having worked as a professional programmer for about 80% of the time I was in college meant that I had more experience than people who were fresh out of college.
Over time, my career took off and I found myself in more challenging positions and suffering from what we now call "Imposter Syndrome". I've also worked with colleagues from "better" universities with more than just an undergraduate degree. It doesn't matter that there was no such thing as a graduate degree in Computer Science when I attended college, they had a Masters or PhD and I had a BS. And decades of experience.
What you have described is not at all unique to you.
What you do have, which many of us with degrees have also experienced, is a demonstrable track record as a developer. That's all the proof you need, or needed, to get your foot in the door.
Mind you, you weren't hired as a senior- or mid-level developer. If you stick with what you know, build on that, continue to prove your ability, you will progress in your new career. And as you do that, as others of us have found, you will continue to encounter both self-doubt (which is normal and natural) and small-minded people (who you should just ignore).
It's a great field, with lots of great people, and some who are just not so great. Ignore the bad people, focus on yourself, challenge yourself to improve, and you'll do very well.
And welcome to my little corner of the workforce. I've been a developer for almost 40 years and it has been an amazing experience.
add a comment |
All of the people worked on my company came from an IT background. This really gets me as I was the only one who is not.
As someone who has been a Systems Administrator for over 10 years now, (working at a few different software development companies), I'd say that your definition of an IT background is too broad. Most of the programmers that I've worked with, (including my egotistical brother, who has a number of programming degrees and 15+ years of programming experience), are clueless when it comes to actual IT knowledge. Some of them were only able to turn on their computers and load up their IDE to work with, and they were the senior programmers. One bit of advice, if you ever see a command that starts with: chmod 777
that is an evil spawn that you should ask your IT department to help you with. It gives too many permissions and can compromise a computer.
New contributor
add a comment |
How did you managed to get rid of imposter syndrome?
Don't do this. Instead of worrying and feeling unadequate because of the "impostor syndrome", don't put yourself down. Don't beat yourself up and belittle yourself and your achievements because of the "impostor syndrome". You should not feel bad, discouraged, or intimidated.
Instead, use the "impostor syndrome" to accelerate your learning progress. You realize that there are many things that you should know, but you don't know them yet, so start learning. You have a lot of things to learn and master, so don't waste time watching tv and porn! If you feel that you are inferior to your colleagues in knowledge and abilities, only hard work and studying will shrink that gap.
Don't compare yourself to others. Realize that you are at the beginning of your programming career and you have a lot to learn, so get into it. Don't just half study, really study and try hard! There are a lot of free resources to learn programming out there, such as YouTube and eBooks. I am mentally supporting you in your journey to become a better programmer. There are thousands of us out there, people who are decent programmers but just not great ones yet. It takes many years of studying and practice to become a great programmer, but eventually you'll get there. Then you'll give advice to other programmers who have the "impostor syndrome".
add a comment |
As a person who has more than 5years of professional programming experience, i still have imposter syndrome. Sometimes i feel like my coworkers with little experience works better than me. Also IT field is changing rapidly, new programming languages emerge every year, so there is not much advantage in years of experience. So what i suggests is spend some time to learn new technologies.
New contributor
add a comment |
Your Answer
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "423"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
noCode: true, onDemand: false,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f143268%2ffrom-non-it-background-to-being-a-programmer%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
StackExchange.ready(function ()
$("#show-editor-button input, #show-editor-button button").click(function ()
var showEditor = function()
$("#show-editor-button").addClass("d-none");
$("#post-form").removeClass("d-none");
StackExchange.editor.finallyInit();
;
var useFancy = $(this).data('confirm-use-fancy');
if(useFancy == 'True')
var popupTitle = $(this).data('confirm-fancy-title');
var popupBody = $(this).data('confirm-fancy-body');
var popupAccept = $(this).data('confirm-fancy-accept-button');
$(this).loadPopup(
url: '/post/self-answer-popup',
loaded: function(popup)
var pTitle = $(popup).find('h2');
var pBody = $(popup).find('.popup-body');
var pSubmit = $(popup).find('.popup-submit');
pTitle.text(popupTitle);
pBody.html(popupBody);
pSubmit.val(popupAccept).click(showEditor);
)
else
var confirmText = $(this).data('confirm-text');
if (confirmText ? confirm(confirmText) : true)
showEditor();
);
);
10 Answers
10
active
oldest
votes
10 Answers
10
active
oldest
votes
active
oldest
votes
active
oldest
votes
Congratulations on been selected for the job!
You got hired because, you showed results of what you are capable of.
- Don't pretend to know things you don't.
- Be aware: others are also fighting imposter syndrome. You are not alone.
- This industry continually evolves. Everyone has to keep learning, or they fall behind.
- There will always be someone who knows something better than you, so don't worry about it.
- If others know a topic better than you, ask them to teach you something or ask for references.
- If You know something better, be open to requests to teach it.
- Just continue improving Your skills... until retirement day... And beyond ;-) .
add a comment |
Congratulations on been selected for the job!
You got hired because, you showed results of what you are capable of.
- Don't pretend to know things you don't.
- Be aware: others are also fighting imposter syndrome. You are not alone.
- This industry continually evolves. Everyone has to keep learning, or they fall behind.
- There will always be someone who knows something better than you, so don't worry about it.
- If others know a topic better than you, ask them to teach you something or ask for references.
- If You know something better, be open to requests to teach it.
- Just continue improving Your skills... until retirement day... And beyond ;-) .
add a comment |
Congratulations on been selected for the job!
You got hired because, you showed results of what you are capable of.
- Don't pretend to know things you don't.
- Be aware: others are also fighting imposter syndrome. You are not alone.
- This industry continually evolves. Everyone has to keep learning, or they fall behind.
- There will always be someone who knows something better than you, so don't worry about it.
- If others know a topic better than you, ask them to teach you something or ask for references.
- If You know something better, be open to requests to teach it.
- Just continue improving Your skills... until retirement day... And beyond ;-) .
Congratulations on been selected for the job!
You got hired because, you showed results of what you are capable of.
- Don't pretend to know things you don't.
- Be aware: others are also fighting imposter syndrome. You are not alone.
- This industry continually evolves. Everyone has to keep learning, or they fall behind.
- There will always be someone who knows something better than you, so don't worry about it.
- If others know a topic better than you, ask them to teach you something or ask for references.
- If You know something better, be open to requests to teach it.
- Just continue improving Your skills... until retirement day... And beyond ;-) .
edited 35 mins ago
atk
2,3031 gold badge15 silver badges21 bronze badges
2,3031 gold badge15 silver badges21 bronze badges
answered 15 hours ago
Robert AndrzejukRobert Andrzejuk
4067 bronze badges
4067 bronze badges
add a comment |
add a comment |
There is a solution to these concerns: work hard and prove you are deserving to be there and deserve their professional respect.
As far as a non-IT background (prior professional experience an/or post secondary education), only elitist people care and this is their problem, not yours. What you are capable of doing is far more important. Two of the best programmers I ever worked with had NO formal college education; plenty of Masters degrees that were terrible.
add a comment |
There is a solution to these concerns: work hard and prove you are deserving to be there and deserve their professional respect.
As far as a non-IT background (prior professional experience an/or post secondary education), only elitist people care and this is their problem, not yours. What you are capable of doing is far more important. Two of the best programmers I ever worked with had NO formal college education; plenty of Masters degrees that were terrible.
add a comment |
There is a solution to these concerns: work hard and prove you are deserving to be there and deserve their professional respect.
As far as a non-IT background (prior professional experience an/or post secondary education), only elitist people care and this is their problem, not yours. What you are capable of doing is far more important. Two of the best programmers I ever worked with had NO formal college education; plenty of Masters degrees that were terrible.
There is a solution to these concerns: work hard and prove you are deserving to be there and deserve their professional respect.
As far as a non-IT background (prior professional experience an/or post secondary education), only elitist people care and this is their problem, not yours. What you are capable of doing is far more important. Two of the best programmers I ever worked with had NO formal college education; plenty of Masters degrees that were terrible.
edited 16 hours ago
answered 17 hours ago
UnhandledExcepSeanUnhandledExcepSean
3,6211 gold badge15 silver badges23 bronze badges
3,6211 gold badge15 silver badges23 bronze badges
add a comment |
add a comment |
Ultimately, you need two things. One is programming ability. If you did not have that to a really impressive extent, you would not have been able to produce a portfolio that would convince your employer to hire you. That is an achievement worthy of pride.
The other is background knowledge. Programming is sufficiently complicated that there is literally more to learn about it than can be learned in one lifetime. I've been learning to program off and on since 1967, and I'm not done yet. No matter what your education and experience, most colleagues will know something you don't. Everything you can learn from others is something you do not have to reinvent. Unit tests and TDD are useful techniques, so learn them, and apply them when appropriate. It does not matter if a colleague is silly enough to look down at you for a different background. Just learn whatever you can from them.
For now, learning on the job should be your main agenda. At some point, when you have settled in and sufficiently picked your colleagues' brains, consider taking some evening classes to get a more formal background.
Don't worry about coming from an IT background. Spend a year or so in the job you have, learning everything you can from it, and you too will have an IT background.
add a comment |
Ultimately, you need two things. One is programming ability. If you did not have that to a really impressive extent, you would not have been able to produce a portfolio that would convince your employer to hire you. That is an achievement worthy of pride.
The other is background knowledge. Programming is sufficiently complicated that there is literally more to learn about it than can be learned in one lifetime. I've been learning to program off and on since 1967, and I'm not done yet. No matter what your education and experience, most colleagues will know something you don't. Everything you can learn from others is something you do not have to reinvent. Unit tests and TDD are useful techniques, so learn them, and apply them when appropriate. It does not matter if a colleague is silly enough to look down at you for a different background. Just learn whatever you can from them.
For now, learning on the job should be your main agenda. At some point, when you have settled in and sufficiently picked your colleagues' brains, consider taking some evening classes to get a more formal background.
Don't worry about coming from an IT background. Spend a year or so in the job you have, learning everything you can from it, and you too will have an IT background.
add a comment |
Ultimately, you need two things. One is programming ability. If you did not have that to a really impressive extent, you would not have been able to produce a portfolio that would convince your employer to hire you. That is an achievement worthy of pride.
The other is background knowledge. Programming is sufficiently complicated that there is literally more to learn about it than can be learned in one lifetime. I've been learning to program off and on since 1967, and I'm not done yet. No matter what your education and experience, most colleagues will know something you don't. Everything you can learn from others is something you do not have to reinvent. Unit tests and TDD are useful techniques, so learn them, and apply them when appropriate. It does not matter if a colleague is silly enough to look down at you for a different background. Just learn whatever you can from them.
For now, learning on the job should be your main agenda. At some point, when you have settled in and sufficiently picked your colleagues' brains, consider taking some evening classes to get a more formal background.
Don't worry about coming from an IT background. Spend a year or so in the job you have, learning everything you can from it, and you too will have an IT background.
Ultimately, you need two things. One is programming ability. If you did not have that to a really impressive extent, you would not have been able to produce a portfolio that would convince your employer to hire you. That is an achievement worthy of pride.
The other is background knowledge. Programming is sufficiently complicated that there is literally more to learn about it than can be learned in one lifetime. I've been learning to program off and on since 1967, and I'm not done yet. No matter what your education and experience, most colleagues will know something you don't. Everything you can learn from others is something you do not have to reinvent. Unit tests and TDD are useful techniques, so learn them, and apply them when appropriate. It does not matter if a colleague is silly enough to look down at you for a different background. Just learn whatever you can from them.
For now, learning on the job should be your main agenda. At some point, when you have settled in and sufficiently picked your colleagues' brains, consider taking some evening classes to get a more formal background.
Don't worry about coming from an IT background. Spend a year or so in the job you have, learning everything you can from it, and you too will have an IT background.
answered 15 hours ago
Patricia ShanahanPatricia Shanahan
22k5 gold badges44 silver badges78 bronze badges
22k5 gold badges44 silver badges78 bronze badges
add a comment |
add a comment |
You have an app and a portfolio to show. You can write software. That means you are far ahead of many people applying to jobs, and ahead of quite a few people who get jobs.
"Fresh out of college" isn't exactly an "exceptional background". "An app and a portfolio to show" is a much better background. I have seen a small number of developers who came fresh from college and were good. I have seen many more who came fresh from college and were useless.
If anyone judges you by your background, they are stupid. If they say that they judge you by your background, they are stupid and deeply insecure. Someone who is confident in himself will judge you by how you do your job, and help you improve if needed.
add a comment |
You have an app and a portfolio to show. You can write software. That means you are far ahead of many people applying to jobs, and ahead of quite a few people who get jobs.
"Fresh out of college" isn't exactly an "exceptional background". "An app and a portfolio to show" is a much better background. I have seen a small number of developers who came fresh from college and were good. I have seen many more who came fresh from college and were useless.
If anyone judges you by your background, they are stupid. If they say that they judge you by your background, they are stupid and deeply insecure. Someone who is confident in himself will judge you by how you do your job, and help you improve if needed.
add a comment |
You have an app and a portfolio to show. You can write software. That means you are far ahead of many people applying to jobs, and ahead of quite a few people who get jobs.
"Fresh out of college" isn't exactly an "exceptional background". "An app and a portfolio to show" is a much better background. I have seen a small number of developers who came fresh from college and were good. I have seen many more who came fresh from college and were useless.
If anyone judges you by your background, they are stupid. If they say that they judge you by your background, they are stupid and deeply insecure. Someone who is confident in himself will judge you by how you do your job, and help you improve if needed.
You have an app and a portfolio to show. You can write software. That means you are far ahead of many people applying to jobs, and ahead of quite a few people who get jobs.
"Fresh out of college" isn't exactly an "exceptional background". "An app and a portfolio to show" is a much better background. I have seen a small number of developers who came fresh from college and were good. I have seen many more who came fresh from college and were useless.
If anyone judges you by your background, they are stupid. If they say that they judge you by your background, they are stupid and deeply insecure. Someone who is confident in himself will judge you by how you do your job, and help you improve if needed.
answered 16 hours ago
gnasher729gnasher729
101k47 gold badges182 silver badges321 bronze badges
101k47 gold badges182 silver badges321 bronze badges
add a comment |
add a comment |
I got hired because I have an app and a portfolio to show.
Always remember this. The company wouldn't have hired you if it didn't see any promise in you.
When I started I can't shake this overwhelming feeling that I don't belong to my job.
That will go away with time, as you settle into your new role.
But I was not doing any TDD or any unit testing.
That is ok, as long as you are willing to learn and implement them. Many companies don't do Tests, and use manual QA's instead, so take heart in the fact that you are at least getting to learn the best practices.
I also used to work alone and now I got to talk to and deal with people who thinks they are far better than you.
That is how most IT projects are structured - team work
is the key. It seems that you haven't developed this skill completely, so it would do well to be open and receptive to new ideas, and try to think team first over me first.
- How did you managed to get rid of imposter syndrome?
You remember that you are not alone in having the imposter syndrome. Everyone have their shortcomings. Maybe some of the other coworkers (SOTOCs) haven't struggled as hard in life as you. Maybe SOTOCs haven't worked on a project end to end by themselves. Maybe they believe there are other things they are not so good at.
There are things that you are good at, and there are things that they are good at. Your task is to learn the good practices from them to do your job better.
- How did you deal with egotistical coders who thinks you're no good because of your background?
Think with a cool mind, do these people appear egotistical just to you or everyone? In my experience, arrogant people / egomaniacs are that way with everyone, not just specific people.
If they behave that way with everyone, learn how others deal with them - could be by keeping communication professional and short, or talking to them after doing complete homework.
If they behave that way only with you, analyze what are the shortcomings in your communication, and try to overcome them. Maybe they expect you to do some self-research before asking questions, or be more observant in general about what they are talking. You mention not having had to talk to others previously, so maybe its causing frustration inside you? Think through it all.
- What impact do you think it would be if a lot of people at my workplace knows that I came not from an IT background?
I've worked with people who have had different backgrounds (not as factory worker, but not an IT worker either). In general, what matters is what they do at current job, rather than what their background is. As long as you are doing tasks right, it should not be much of a bother.
So don't worry about what would people think. Remember the first point, The company wouldn't have hired you if it didn't see any promise in you.
add a comment |
I got hired because I have an app and a portfolio to show.
Always remember this. The company wouldn't have hired you if it didn't see any promise in you.
When I started I can't shake this overwhelming feeling that I don't belong to my job.
That will go away with time, as you settle into your new role.
But I was not doing any TDD or any unit testing.
That is ok, as long as you are willing to learn and implement them. Many companies don't do Tests, and use manual QA's instead, so take heart in the fact that you are at least getting to learn the best practices.
I also used to work alone and now I got to talk to and deal with people who thinks they are far better than you.
That is how most IT projects are structured - team work
is the key. It seems that you haven't developed this skill completely, so it would do well to be open and receptive to new ideas, and try to think team first over me first.
- How did you managed to get rid of imposter syndrome?
You remember that you are not alone in having the imposter syndrome. Everyone have their shortcomings. Maybe some of the other coworkers (SOTOCs) haven't struggled as hard in life as you. Maybe SOTOCs haven't worked on a project end to end by themselves. Maybe they believe there are other things they are not so good at.
There are things that you are good at, and there are things that they are good at. Your task is to learn the good practices from them to do your job better.
- How did you deal with egotistical coders who thinks you're no good because of your background?
Think with a cool mind, do these people appear egotistical just to you or everyone? In my experience, arrogant people / egomaniacs are that way with everyone, not just specific people.
If they behave that way with everyone, learn how others deal with them - could be by keeping communication professional and short, or talking to them after doing complete homework.
If they behave that way only with you, analyze what are the shortcomings in your communication, and try to overcome them. Maybe they expect you to do some self-research before asking questions, or be more observant in general about what they are talking. You mention not having had to talk to others previously, so maybe its causing frustration inside you? Think through it all.
- What impact do you think it would be if a lot of people at my workplace knows that I came not from an IT background?
I've worked with people who have had different backgrounds (not as factory worker, but not an IT worker either). In general, what matters is what they do at current job, rather than what their background is. As long as you are doing tasks right, it should not be much of a bother.
So don't worry about what would people think. Remember the first point, The company wouldn't have hired you if it didn't see any promise in you.
add a comment |
I got hired because I have an app and a portfolio to show.
Always remember this. The company wouldn't have hired you if it didn't see any promise in you.
When I started I can't shake this overwhelming feeling that I don't belong to my job.
That will go away with time, as you settle into your new role.
But I was not doing any TDD or any unit testing.
That is ok, as long as you are willing to learn and implement them. Many companies don't do Tests, and use manual QA's instead, so take heart in the fact that you are at least getting to learn the best practices.
I also used to work alone and now I got to talk to and deal with people who thinks they are far better than you.
That is how most IT projects are structured - team work
is the key. It seems that you haven't developed this skill completely, so it would do well to be open and receptive to new ideas, and try to think team first over me first.
- How did you managed to get rid of imposter syndrome?
You remember that you are not alone in having the imposter syndrome. Everyone have their shortcomings. Maybe some of the other coworkers (SOTOCs) haven't struggled as hard in life as you. Maybe SOTOCs haven't worked on a project end to end by themselves. Maybe they believe there are other things they are not so good at.
There are things that you are good at, and there are things that they are good at. Your task is to learn the good practices from them to do your job better.
- How did you deal with egotistical coders who thinks you're no good because of your background?
Think with a cool mind, do these people appear egotistical just to you or everyone? In my experience, arrogant people / egomaniacs are that way with everyone, not just specific people.
If they behave that way with everyone, learn how others deal with them - could be by keeping communication professional and short, or talking to them after doing complete homework.
If they behave that way only with you, analyze what are the shortcomings in your communication, and try to overcome them. Maybe they expect you to do some self-research before asking questions, or be more observant in general about what they are talking. You mention not having had to talk to others previously, so maybe its causing frustration inside you? Think through it all.
- What impact do you think it would be if a lot of people at my workplace knows that I came not from an IT background?
I've worked with people who have had different backgrounds (not as factory worker, but not an IT worker either). In general, what matters is what they do at current job, rather than what their background is. As long as you are doing tasks right, it should not be much of a bother.
So don't worry about what would people think. Remember the first point, The company wouldn't have hired you if it didn't see any promise in you.
I got hired because I have an app and a portfolio to show.
Always remember this. The company wouldn't have hired you if it didn't see any promise in you.
When I started I can't shake this overwhelming feeling that I don't belong to my job.
That will go away with time, as you settle into your new role.
But I was not doing any TDD or any unit testing.
That is ok, as long as you are willing to learn and implement them. Many companies don't do Tests, and use manual QA's instead, so take heart in the fact that you are at least getting to learn the best practices.
I also used to work alone and now I got to talk to and deal with people who thinks they are far better than you.
That is how most IT projects are structured - team work
is the key. It seems that you haven't developed this skill completely, so it would do well to be open and receptive to new ideas, and try to think team first over me first.
- How did you managed to get rid of imposter syndrome?
You remember that you are not alone in having the imposter syndrome. Everyone have their shortcomings. Maybe some of the other coworkers (SOTOCs) haven't struggled as hard in life as you. Maybe SOTOCs haven't worked on a project end to end by themselves. Maybe they believe there are other things they are not so good at.
There are things that you are good at, and there are things that they are good at. Your task is to learn the good practices from them to do your job better.
- How did you deal with egotistical coders who thinks you're no good because of your background?
Think with a cool mind, do these people appear egotistical just to you or everyone? In my experience, arrogant people / egomaniacs are that way with everyone, not just specific people.
If they behave that way with everyone, learn how others deal with them - could be by keeping communication professional and short, or talking to them after doing complete homework.
If they behave that way only with you, analyze what are the shortcomings in your communication, and try to overcome them. Maybe they expect you to do some self-research before asking questions, or be more observant in general about what they are talking. You mention not having had to talk to others previously, so maybe its causing frustration inside you? Think through it all.
- What impact do you think it would be if a lot of people at my workplace knows that I came not from an IT background?
I've worked with people who have had different backgrounds (not as factory worker, but not an IT worker either). In general, what matters is what they do at current job, rather than what their background is. As long as you are doing tasks right, it should not be much of a bother.
So don't worry about what would people think. Remember the first point, The company wouldn't have hired you if it didn't see any promise in you.
answered 13 hours ago
mu 無mu 無
3,6861 gold badge16 silver badges27 bronze badges
3,6861 gold badge16 silver badges27 bronze badges
add a comment |
add a comment |
I'm one of many, many people who develop software without an academic background in it. (I got a GCSE in Computer Science, but didn't study it at A-Level — sorry, I don't know what the equivalent of those would be in other countries — and my degree was in Mathematics.) But I've been working in IT for two-and-a-half decades now, and still seem to be getting away with it!
I have no doubt that you know your stuff, and have the potential to be a great programmer. You wouldn't have been hired otherwise — and you wouldn't be asking here if you didn't care and want to be better. And those are probably the most important things!
None of us is perfect, and as long as you're aware of that, you're probably going to do fine.
I'll mention a few of the things that I'd tell the 21-year-old me — you can judge whether they apply to you at all. And because I've got pretentious in my old age, I'll use some quotes:
“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson & Sussman [preface to Structure And Interpretation Of Computer Programs]
It's really important for code to be as clear as possible. (Almost) anyone can write code that runs and does what it's supposed to; but it's really hard to write code that anyone else can read, understand, and work on. And you will be working with other people: you'll need to read and understand their code, and they yours. (And you'll need to read your own code, months or years down the line, so you'll be doing yourself a favour too!)
A more vivid way to put this is:
“Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.” — John Woods [comp.lang.c++]
On complexity:
“Everyone knows that debugging is twice as hard as writing
a program in the first place. So if you’re as clever as you
can be when you write it, how will you ever debug it?” — Kernighan & Plauger [The Elements Of Programming Style]
It pays to keep things as simple as you can. Simple code is easier to understand, easier to maintain and extend, and more likely to be correct in the first place. When you know advanced techniques and clever hacks, it's tempting to use them to show off. But resist the temptation!
Sometimes I think the most important — and difficult — task we programmers face is that of fighting complexity. In the face of increasingly complex and demanding requirements and requests, ballooning codebases, and ever-more-complex tools, keeping things simple is a real challenge, but it's vital!
“Be consistent.” — Larry Wall [the perlstyle manpage]
(Yes, you might well find that funny coming from him… :)
Consistency is really import in a codebase. No code is perfect, and the code you inherit will probably have unhelpful indentation and spacing, confusing names, out-of-date techniques, and/or worse. Many of those are worth fixing when you work on that code. But before you do, look around the codebase and see if those things apply everywhere. If so, grit your teeth and leave them alone — and even write new code in the same style. With a large codebase, a uniform style/naming/&c is much easier to read and work on than a patchwork of different styles — even if that one style isn't the best.
(That's not to say you should never look to improve existing code — just do it in a way that your colleagues will approve of.)
And finally, a point I don't have a quote for: always question requirements. Always ask “What's the ultimate goal here? What is this actually trying to achieve?” Because very often, what they've asked for won't actually do all they need it to, or will cause problems elsewhere, or will perform badly, or will add unnecessary complexity, or will be hard to maintain in future, or will prevent other planned improvements, or will take far more work than necessary. It still surprises me how often a bit of investigation can lead you to a different and much better solution.
— As I said, you may already be aware of some or all of these points. In which case, you're part-way to being a great programmer already! 😀
add a comment |
I'm one of many, many people who develop software without an academic background in it. (I got a GCSE in Computer Science, but didn't study it at A-Level — sorry, I don't know what the equivalent of those would be in other countries — and my degree was in Mathematics.) But I've been working in IT for two-and-a-half decades now, and still seem to be getting away with it!
I have no doubt that you know your stuff, and have the potential to be a great programmer. You wouldn't have been hired otherwise — and you wouldn't be asking here if you didn't care and want to be better. And those are probably the most important things!
None of us is perfect, and as long as you're aware of that, you're probably going to do fine.
I'll mention a few of the things that I'd tell the 21-year-old me — you can judge whether they apply to you at all. And because I've got pretentious in my old age, I'll use some quotes:
“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson & Sussman [preface to Structure And Interpretation Of Computer Programs]
It's really important for code to be as clear as possible. (Almost) anyone can write code that runs and does what it's supposed to; but it's really hard to write code that anyone else can read, understand, and work on. And you will be working with other people: you'll need to read and understand their code, and they yours. (And you'll need to read your own code, months or years down the line, so you'll be doing yourself a favour too!)
A more vivid way to put this is:
“Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.” — John Woods [comp.lang.c++]
On complexity:
“Everyone knows that debugging is twice as hard as writing
a program in the first place. So if you’re as clever as you
can be when you write it, how will you ever debug it?” — Kernighan & Plauger [The Elements Of Programming Style]
It pays to keep things as simple as you can. Simple code is easier to understand, easier to maintain and extend, and more likely to be correct in the first place. When you know advanced techniques and clever hacks, it's tempting to use them to show off. But resist the temptation!
Sometimes I think the most important — and difficult — task we programmers face is that of fighting complexity. In the face of increasingly complex and demanding requirements and requests, ballooning codebases, and ever-more-complex tools, keeping things simple is a real challenge, but it's vital!
“Be consistent.” — Larry Wall [the perlstyle manpage]
(Yes, you might well find that funny coming from him… :)
Consistency is really import in a codebase. No code is perfect, and the code you inherit will probably have unhelpful indentation and spacing, confusing names, out-of-date techniques, and/or worse. Many of those are worth fixing when you work on that code. But before you do, look around the codebase and see if those things apply everywhere. If so, grit your teeth and leave them alone — and even write new code in the same style. With a large codebase, a uniform style/naming/&c is much easier to read and work on than a patchwork of different styles — even if that one style isn't the best.
(That's not to say you should never look to improve existing code — just do it in a way that your colleagues will approve of.)
And finally, a point I don't have a quote for: always question requirements. Always ask “What's the ultimate goal here? What is this actually trying to achieve?” Because very often, what they've asked for won't actually do all they need it to, or will cause problems elsewhere, or will perform badly, or will add unnecessary complexity, or will be hard to maintain in future, or will prevent other planned improvements, or will take far more work than necessary. It still surprises me how often a bit of investigation can lead you to a different and much better solution.
— As I said, you may already be aware of some or all of these points. In which case, you're part-way to being a great programmer already! 😀
add a comment |
I'm one of many, many people who develop software without an academic background in it. (I got a GCSE in Computer Science, but didn't study it at A-Level — sorry, I don't know what the equivalent of those would be in other countries — and my degree was in Mathematics.) But I've been working in IT for two-and-a-half decades now, and still seem to be getting away with it!
I have no doubt that you know your stuff, and have the potential to be a great programmer. You wouldn't have been hired otherwise — and you wouldn't be asking here if you didn't care and want to be better. And those are probably the most important things!
None of us is perfect, and as long as you're aware of that, you're probably going to do fine.
I'll mention a few of the things that I'd tell the 21-year-old me — you can judge whether they apply to you at all. And because I've got pretentious in my old age, I'll use some quotes:
“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson & Sussman [preface to Structure And Interpretation Of Computer Programs]
It's really important for code to be as clear as possible. (Almost) anyone can write code that runs and does what it's supposed to; but it's really hard to write code that anyone else can read, understand, and work on. And you will be working with other people: you'll need to read and understand their code, and they yours. (And you'll need to read your own code, months or years down the line, so you'll be doing yourself a favour too!)
A more vivid way to put this is:
“Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.” — John Woods [comp.lang.c++]
On complexity:
“Everyone knows that debugging is twice as hard as writing
a program in the first place. So if you’re as clever as you
can be when you write it, how will you ever debug it?” — Kernighan & Plauger [The Elements Of Programming Style]
It pays to keep things as simple as you can. Simple code is easier to understand, easier to maintain and extend, and more likely to be correct in the first place. When you know advanced techniques and clever hacks, it's tempting to use them to show off. But resist the temptation!
Sometimes I think the most important — and difficult — task we programmers face is that of fighting complexity. In the face of increasingly complex and demanding requirements and requests, ballooning codebases, and ever-more-complex tools, keeping things simple is a real challenge, but it's vital!
“Be consistent.” — Larry Wall [the perlstyle manpage]
(Yes, you might well find that funny coming from him… :)
Consistency is really import in a codebase. No code is perfect, and the code you inherit will probably have unhelpful indentation and spacing, confusing names, out-of-date techniques, and/or worse. Many of those are worth fixing when you work on that code. But before you do, look around the codebase and see if those things apply everywhere. If so, grit your teeth and leave them alone — and even write new code in the same style. With a large codebase, a uniform style/naming/&c is much easier to read and work on than a patchwork of different styles — even if that one style isn't the best.
(That's not to say you should never look to improve existing code — just do it in a way that your colleagues will approve of.)
And finally, a point I don't have a quote for: always question requirements. Always ask “What's the ultimate goal here? What is this actually trying to achieve?” Because very often, what they've asked for won't actually do all they need it to, or will cause problems elsewhere, or will perform badly, or will add unnecessary complexity, or will be hard to maintain in future, or will prevent other planned improvements, or will take far more work than necessary. It still surprises me how often a bit of investigation can lead you to a different and much better solution.
— As I said, you may already be aware of some or all of these points. In which case, you're part-way to being a great programmer already! 😀
I'm one of many, many people who develop software without an academic background in it. (I got a GCSE in Computer Science, but didn't study it at A-Level — sorry, I don't know what the equivalent of those would be in other countries — and my degree was in Mathematics.) But I've been working in IT for two-and-a-half decades now, and still seem to be getting away with it!
I have no doubt that you know your stuff, and have the potential to be a great programmer. You wouldn't have been hired otherwise — and you wouldn't be asking here if you didn't care and want to be better. And those are probably the most important things!
None of us is perfect, and as long as you're aware of that, you're probably going to do fine.
I'll mention a few of the things that I'd tell the 21-year-old me — you can judge whether they apply to you at all. And because I've got pretentious in my old age, I'll use some quotes:
“Programs must be written for people to read, and only incidentally for machines to execute.” — Abelson & Sussman [preface to Structure And Interpretation Of Computer Programs]
It's really important for code to be as clear as possible. (Almost) anyone can write code that runs and does what it's supposed to; but it's really hard to write code that anyone else can read, understand, and work on. And you will be working with other people: you'll need to read and understand their code, and they yours. (And you'll need to read your own code, months or years down the line, so you'll be doing yourself a favour too!)
A more vivid way to put this is:
“Always code as if the guy who ends up maintaining your code
will be a violent psychopath who knows where you live.” — John Woods [comp.lang.c++]
On complexity:
“Everyone knows that debugging is twice as hard as writing
a program in the first place. So if you’re as clever as you
can be when you write it, how will you ever debug it?” — Kernighan & Plauger [The Elements Of Programming Style]
It pays to keep things as simple as you can. Simple code is easier to understand, easier to maintain and extend, and more likely to be correct in the first place. When you know advanced techniques and clever hacks, it's tempting to use them to show off. But resist the temptation!
Sometimes I think the most important — and difficult — task we programmers face is that of fighting complexity. In the face of increasingly complex and demanding requirements and requests, ballooning codebases, and ever-more-complex tools, keeping things simple is a real challenge, but it's vital!
“Be consistent.” — Larry Wall [the perlstyle manpage]
(Yes, you might well find that funny coming from him… :)
Consistency is really import in a codebase. No code is perfect, and the code you inherit will probably have unhelpful indentation and spacing, confusing names, out-of-date techniques, and/or worse. Many of those are worth fixing when you work on that code. But before you do, look around the codebase and see if those things apply everywhere. If so, grit your teeth and leave them alone — and even write new code in the same style. With a large codebase, a uniform style/naming/&c is much easier to read and work on than a patchwork of different styles — even if that one style isn't the best.
(That's not to say you should never look to improve existing code — just do it in a way that your colleagues will approve of.)
And finally, a point I don't have a quote for: always question requirements. Always ask “What's the ultimate goal here? What is this actually trying to achieve?” Because very often, what they've asked for won't actually do all they need it to, or will cause problems elsewhere, or will perform badly, or will add unnecessary complexity, or will be hard to maintain in future, or will prevent other planned improvements, or will take far more work than necessary. It still surprises me how often a bit of investigation can lead you to a different and much better solution.
— As I said, you may already be aware of some or all of these points. In which case, you're part-way to being a great programmer already! 😀
answered 7 hours ago
giddsgidds
8971 silver badge7 bronze badges
8971 silver badge7 bronze badges
add a comment |
add a comment |
Congratulations! You're an adult human being!
That might sound flippant, but the problems you described are common to people with decades of experience and sizable bodies of work.
I attended an in-state university in a town with a better reputation as a "party town" than a "center of serious learning." I also worked my way through college, including doing blue collar work. Early in my career this wasn't a great thing, but having worked as a professional programmer for about 80% of the time I was in college meant that I had more experience than people who were fresh out of college.
Over time, my career took off and I found myself in more challenging positions and suffering from what we now call "Imposter Syndrome". I've also worked with colleagues from "better" universities with more than just an undergraduate degree. It doesn't matter that there was no such thing as a graduate degree in Computer Science when I attended college, they had a Masters or PhD and I had a BS. And decades of experience.
What you have described is not at all unique to you.
What you do have, which many of us with degrees have also experienced, is a demonstrable track record as a developer. That's all the proof you need, or needed, to get your foot in the door.
Mind you, you weren't hired as a senior- or mid-level developer. If you stick with what you know, build on that, continue to prove your ability, you will progress in your new career. And as you do that, as others of us have found, you will continue to encounter both self-doubt (which is normal and natural) and small-minded people (who you should just ignore).
It's a great field, with lots of great people, and some who are just not so great. Ignore the bad people, focus on yourself, challenge yourself to improve, and you'll do very well.
And welcome to my little corner of the workforce. I've been a developer for almost 40 years and it has been an amazing experience.
add a comment |
Congratulations! You're an adult human being!
That might sound flippant, but the problems you described are common to people with decades of experience and sizable bodies of work.
I attended an in-state university in a town with a better reputation as a "party town" than a "center of serious learning." I also worked my way through college, including doing blue collar work. Early in my career this wasn't a great thing, but having worked as a professional programmer for about 80% of the time I was in college meant that I had more experience than people who were fresh out of college.
Over time, my career took off and I found myself in more challenging positions and suffering from what we now call "Imposter Syndrome". I've also worked with colleagues from "better" universities with more than just an undergraduate degree. It doesn't matter that there was no such thing as a graduate degree in Computer Science when I attended college, they had a Masters or PhD and I had a BS. And decades of experience.
What you have described is not at all unique to you.
What you do have, which many of us with degrees have also experienced, is a demonstrable track record as a developer. That's all the proof you need, or needed, to get your foot in the door.
Mind you, you weren't hired as a senior- or mid-level developer. If you stick with what you know, build on that, continue to prove your ability, you will progress in your new career. And as you do that, as others of us have found, you will continue to encounter both self-doubt (which is normal and natural) and small-minded people (who you should just ignore).
It's a great field, with lots of great people, and some who are just not so great. Ignore the bad people, focus on yourself, challenge yourself to improve, and you'll do very well.
And welcome to my little corner of the workforce. I've been a developer for almost 40 years and it has been an amazing experience.
add a comment |
Congratulations! You're an adult human being!
That might sound flippant, but the problems you described are common to people with decades of experience and sizable bodies of work.
I attended an in-state university in a town with a better reputation as a "party town" than a "center of serious learning." I also worked my way through college, including doing blue collar work. Early in my career this wasn't a great thing, but having worked as a professional programmer for about 80% of the time I was in college meant that I had more experience than people who were fresh out of college.
Over time, my career took off and I found myself in more challenging positions and suffering from what we now call "Imposter Syndrome". I've also worked with colleagues from "better" universities with more than just an undergraduate degree. It doesn't matter that there was no such thing as a graduate degree in Computer Science when I attended college, they had a Masters or PhD and I had a BS. And decades of experience.
What you have described is not at all unique to you.
What you do have, which many of us with degrees have also experienced, is a demonstrable track record as a developer. That's all the proof you need, or needed, to get your foot in the door.
Mind you, you weren't hired as a senior- or mid-level developer. If you stick with what you know, build on that, continue to prove your ability, you will progress in your new career. And as you do that, as others of us have found, you will continue to encounter both self-doubt (which is normal and natural) and small-minded people (who you should just ignore).
It's a great field, with lots of great people, and some who are just not so great. Ignore the bad people, focus on yourself, challenge yourself to improve, and you'll do very well.
And welcome to my little corner of the workforce. I've been a developer for almost 40 years and it has been an amazing experience.
Congratulations! You're an adult human being!
That might sound flippant, but the problems you described are common to people with decades of experience and sizable bodies of work.
I attended an in-state university in a town with a better reputation as a "party town" than a "center of serious learning." I also worked my way through college, including doing blue collar work. Early in my career this wasn't a great thing, but having worked as a professional programmer for about 80% of the time I was in college meant that I had more experience than people who were fresh out of college.
Over time, my career took off and I found myself in more challenging positions and suffering from what we now call "Imposter Syndrome". I've also worked with colleagues from "better" universities with more than just an undergraduate degree. It doesn't matter that there was no such thing as a graduate degree in Computer Science when I attended college, they had a Masters or PhD and I had a BS. And decades of experience.
What you have described is not at all unique to you.
What you do have, which many of us with degrees have also experienced, is a demonstrable track record as a developer. That's all the proof you need, or needed, to get your foot in the door.
Mind you, you weren't hired as a senior- or mid-level developer. If you stick with what you know, build on that, continue to prove your ability, you will progress in your new career. And as you do that, as others of us have found, you will continue to encounter both self-doubt (which is normal and natural) and small-minded people (who you should just ignore).
It's a great field, with lots of great people, and some who are just not so great. Ignore the bad people, focus on yourself, challenge yourself to improve, and you'll do very well.
And welcome to my little corner of the workforce. I've been a developer for almost 40 years and it has been an amazing experience.
answered 13 hours ago
Julie in AustinJulie in Austin
2,6358 silver badges21 bronze badges
2,6358 silver badges21 bronze badges
add a comment |
add a comment |
All of the people worked on my company came from an IT background. This really gets me as I was the only one who is not.
As someone who has been a Systems Administrator for over 10 years now, (working at a few different software development companies), I'd say that your definition of an IT background is too broad. Most of the programmers that I've worked with, (including my egotistical brother, who has a number of programming degrees and 15+ years of programming experience), are clueless when it comes to actual IT knowledge. Some of them were only able to turn on their computers and load up their IDE to work with, and they were the senior programmers. One bit of advice, if you ever see a command that starts with: chmod 777
that is an evil spawn that you should ask your IT department to help you with. It gives too many permissions and can compromise a computer.
New contributor
add a comment |
All of the people worked on my company came from an IT background. This really gets me as I was the only one who is not.
As someone who has been a Systems Administrator for over 10 years now, (working at a few different software development companies), I'd say that your definition of an IT background is too broad. Most of the programmers that I've worked with, (including my egotistical brother, who has a number of programming degrees and 15+ years of programming experience), are clueless when it comes to actual IT knowledge. Some of them were only able to turn on their computers and load up their IDE to work with, and they were the senior programmers. One bit of advice, if you ever see a command that starts with: chmod 777
that is an evil spawn that you should ask your IT department to help you with. It gives too many permissions and can compromise a computer.
New contributor
add a comment |
All of the people worked on my company came from an IT background. This really gets me as I was the only one who is not.
As someone who has been a Systems Administrator for over 10 years now, (working at a few different software development companies), I'd say that your definition of an IT background is too broad. Most of the programmers that I've worked with, (including my egotistical brother, who has a number of programming degrees and 15+ years of programming experience), are clueless when it comes to actual IT knowledge. Some of them were only able to turn on their computers and load up their IDE to work with, and they were the senior programmers. One bit of advice, if you ever see a command that starts with: chmod 777
that is an evil spawn that you should ask your IT department to help you with. It gives too many permissions and can compromise a computer.
New contributor
All of the people worked on my company came from an IT background. This really gets me as I was the only one who is not.
As someone who has been a Systems Administrator for over 10 years now, (working at a few different software development companies), I'd say that your definition of an IT background is too broad. Most of the programmers that I've worked with, (including my egotistical brother, who has a number of programming degrees and 15+ years of programming experience), are clueless when it comes to actual IT knowledge. Some of them were only able to turn on their computers and load up their IDE to work with, and they were the senior programmers. One bit of advice, if you ever see a command that starts with: chmod 777
that is an evil spawn that you should ask your IT department to help you with. It gives too many permissions and can compromise a computer.
New contributor
New contributor
answered 9 hours ago
BlergBlerg
1113 bronze badges
1113 bronze badges
New contributor
New contributor
add a comment |
add a comment |
How did you managed to get rid of imposter syndrome?
Don't do this. Instead of worrying and feeling unadequate because of the "impostor syndrome", don't put yourself down. Don't beat yourself up and belittle yourself and your achievements because of the "impostor syndrome". You should not feel bad, discouraged, or intimidated.
Instead, use the "impostor syndrome" to accelerate your learning progress. You realize that there are many things that you should know, but you don't know them yet, so start learning. You have a lot of things to learn and master, so don't waste time watching tv and porn! If you feel that you are inferior to your colleagues in knowledge and abilities, only hard work and studying will shrink that gap.
Don't compare yourself to others. Realize that you are at the beginning of your programming career and you have a lot to learn, so get into it. Don't just half study, really study and try hard! There are a lot of free resources to learn programming out there, such as YouTube and eBooks. I am mentally supporting you in your journey to become a better programmer. There are thousands of us out there, people who are decent programmers but just not great ones yet. It takes many years of studying and practice to become a great programmer, but eventually you'll get there. Then you'll give advice to other programmers who have the "impostor syndrome".
add a comment |
How did you managed to get rid of imposter syndrome?
Don't do this. Instead of worrying and feeling unadequate because of the "impostor syndrome", don't put yourself down. Don't beat yourself up and belittle yourself and your achievements because of the "impostor syndrome". You should not feel bad, discouraged, or intimidated.
Instead, use the "impostor syndrome" to accelerate your learning progress. You realize that there are many things that you should know, but you don't know them yet, so start learning. You have a lot of things to learn and master, so don't waste time watching tv and porn! If you feel that you are inferior to your colleagues in knowledge and abilities, only hard work and studying will shrink that gap.
Don't compare yourself to others. Realize that you are at the beginning of your programming career and you have a lot to learn, so get into it. Don't just half study, really study and try hard! There are a lot of free resources to learn programming out there, such as YouTube and eBooks. I am mentally supporting you in your journey to become a better programmer. There are thousands of us out there, people who are decent programmers but just not great ones yet. It takes many years of studying and practice to become a great programmer, but eventually you'll get there. Then you'll give advice to other programmers who have the "impostor syndrome".
add a comment |
How did you managed to get rid of imposter syndrome?
Don't do this. Instead of worrying and feeling unadequate because of the "impostor syndrome", don't put yourself down. Don't beat yourself up and belittle yourself and your achievements because of the "impostor syndrome". You should not feel bad, discouraged, or intimidated.
Instead, use the "impostor syndrome" to accelerate your learning progress. You realize that there are many things that you should know, but you don't know them yet, so start learning. You have a lot of things to learn and master, so don't waste time watching tv and porn! If you feel that you are inferior to your colleagues in knowledge and abilities, only hard work and studying will shrink that gap.
Don't compare yourself to others. Realize that you are at the beginning of your programming career and you have a lot to learn, so get into it. Don't just half study, really study and try hard! There are a lot of free resources to learn programming out there, such as YouTube and eBooks. I am mentally supporting you in your journey to become a better programmer. There are thousands of us out there, people who are decent programmers but just not great ones yet. It takes many years of studying and practice to become a great programmer, but eventually you'll get there. Then you'll give advice to other programmers who have the "impostor syndrome".
How did you managed to get rid of imposter syndrome?
Don't do this. Instead of worrying and feeling unadequate because of the "impostor syndrome", don't put yourself down. Don't beat yourself up and belittle yourself and your achievements because of the "impostor syndrome". You should not feel bad, discouraged, or intimidated.
Instead, use the "impostor syndrome" to accelerate your learning progress. You realize that there are many things that you should know, but you don't know them yet, so start learning. You have a lot of things to learn and master, so don't waste time watching tv and porn! If you feel that you are inferior to your colleagues in knowledge and abilities, only hard work and studying will shrink that gap.
Don't compare yourself to others. Realize that you are at the beginning of your programming career and you have a lot to learn, so get into it. Don't just half study, really study and try hard! There are a lot of free resources to learn programming out there, such as YouTube and eBooks. I am mentally supporting you in your journey to become a better programmer. There are thousands of us out there, people who are decent programmers but just not great ones yet. It takes many years of studying and practice to become a great programmer, but eventually you'll get there. Then you'll give advice to other programmers who have the "impostor syndrome".
edited 8 hours ago
answered 8 hours ago
GalaxyGalaxy
1354 bronze badges
1354 bronze badges
add a comment |
add a comment |
As a person who has more than 5years of professional programming experience, i still have imposter syndrome. Sometimes i feel like my coworkers with little experience works better than me. Also IT field is changing rapidly, new programming languages emerge every year, so there is not much advantage in years of experience. So what i suggests is spend some time to learn new technologies.
New contributor
add a comment |
As a person who has more than 5years of professional programming experience, i still have imposter syndrome. Sometimes i feel like my coworkers with little experience works better than me. Also IT field is changing rapidly, new programming languages emerge every year, so there is not much advantage in years of experience. So what i suggests is spend some time to learn new technologies.
New contributor
add a comment |
As a person who has more than 5years of professional programming experience, i still have imposter syndrome. Sometimes i feel like my coworkers with little experience works better than me. Also IT field is changing rapidly, new programming languages emerge every year, so there is not much advantage in years of experience. So what i suggests is spend some time to learn new technologies.
New contributor
As a person who has more than 5years of professional programming experience, i still have imposter syndrome. Sometimes i feel like my coworkers with little experience works better than me. Also IT field is changing rapidly, new programming languages emerge every year, so there is not much advantage in years of experience. So what i suggests is spend some time to learn new technologies.
New contributor
New contributor
answered 34 mins ago
suhailvssuhailvs
1113 bronze badges
1113 bronze badges
New contributor
New contributor
add a comment |
add a comment |
Thanks for contributing an answer to The Workplace Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fworkplace.stackexchange.com%2fquestions%2f143268%2ffrom-non-it-background-to-being-a-programmer%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
9
Perhaps step back and consider that the reason that your relationship with your co-workers might not be great is because your attitude towards them is bad.
– Philip Kendall
18 hours ago
2
@PhilipKendall That's a pretty harsh assumption, what do you base it on?
– jpatokal
18 hours ago
2
deal with people who thinks they are far better than you
did they tell you so? Or is it just your imagination? Or even if it was true...why does it matter? Maybe they really are. Why can't they be better? And you can learn a lot from them. If they say things like "what you don't even know THAT?" then it's on them, not you.– Billy.Bob
17 hours ago
2
What some people call "big egos" or "egotistical coders" others could say is confidence or a strong drive for success. Either way it can be interpreted positively or negatively. But why be so judgmental?
– Robert Andrzejuk
11 hours ago
5
"I am ... new ... I can really tell people who are full of themselves" It's statements like these that always make me suspicious. There's a proverb where I come from, which roughly translates to: "The thief judges based on his own condition". It means that people generally judge others based on how they themselves behave towards them. (Think of the liar that always thinks everyone else must be lying to them.) Being new there, maybe you do need to take a step back, get to know them better, and account for work environment/cultural differences before rushing to judgement so quickly?
– code_dredd
9 hours ago