How do I know if I am good enough?
I, always, am comparing myself with programmers and I want to be "that" good before I take jobs. However, sometimes job opportunities come and I am just not sure if I should dive. How do I know if I can fulfill the request? How do I know if I am good enough?
Right now, I am taking working on some freebie projects for my friends so I can further develop my skills.
Also, it is an eCommerce website: Could anyone give me some ideas of how difficult it may be or an idea of the problems I may encounter?
35 comments
[ 2.7 ms ] story [ 78.6 ms ] threadWhen I started as a junior html developer I'd written exactly one website, a really poor 1997-era personal homepage. I didn't even know what a html table was, I'd never done forms, etc etc. It was a really junior role, but I figured I could learn what I didn't know on the spot. I stayed at that company for 4 years, and left with the job title "Senior Database Programmer". I'm now a highly experienced developer with some good academic qualifications too; I joined my first university on the strength of my experience alone, which was that first job.
Stop worrying and go for it. There's a crapload of documentation online, so even if you really are a bad developer you should be able to squeeze by until you become good enough.
Ending up on a pip which ruins your career.
It's a better model then getting into something you know you're fully capable of and having no incentive to perform like hell. Comfortable but mind destroying.
If you only attempt projects that are well below your skill level you'll just stagnate and get bored. Eventually your skills will deteriorate as a result.
Go for bigger fish, even if you're not sure you can reel them in.
There's _a lot_ of stuff that your teammates can teach you in five minutes that would take a day of Googling and experimentation to learn yourself, especially when you're a beginner.
I would only turn down work for fear that you are not capable if you know it is truly beyond your ability for the forseeable future or if the deadline is too constrained to permit yourself to recover from mistakes or delays from learning.
People are always ready to help.
In fact, it should be considered a great form of encouragement! I'm a very green developer (1 year experience), and the fact that there exists individuals orders of magnitude more impressive than me at my craft gives me great hope for future growth.
It's a challenge, an inspiration, and direction all wrapped into one.
http://www.youtube.com/watch?v=-DIETlxquzY
And it works, the man went on to become a United States Senator.
http://www.iggdawg.com/pics/misc/chew_it.jpg
This wolf went on to become the alpha pack leader, not unlike Al Franken.
I know, it IS scary but trust me that will pass.
First, the problems to be solved in web retail aren't particularly "hard" in comparison to the kind of problems being solved by, say, the more recent YC startups.
One thing that is critical in web retail is good architecture and clean code, specifically with interface coupling. Between third party order/product feed integration, promotions, special offers, sales tax, duties, shipping concerns, etc, the "special case" and edge condition pile grows very rapidly in this industry. Building a sufficiently generic framework for your system and keeping concerns as loosely coupled as possible is probably the most critical aspect to the technology of a web retailer.
Just think about why human animals have the capacity for learning and knowledge in the first place. It was for survival in a much harsher setting. Jumping in water which is just a little too deep is a good way to simulate this.
Good luck
Perhaps instead of thinking: ‘Am I good enough’ think of it as ‘How can I improve’. The idea is to shift the focus toward being your best, which is largely under your control while how hard other people work is not. Those that are internally driven tend to do better since they are trying to maximize their situation. By helping your friends in order to improve your skill set it seems you are doing just that.
Once you've gone through the interview process and they've hired you, trust them! Don't second guess yourself. At that point, tips are:
* Be prepared to spend time outside of the job getting up to standards on the code base or things you don't understand, especially the first few months. You want to make sure you can also deliver what you've contracted for.
* Are you willing and comfortable asking for help from other people? If you have good sources to go to and you go to them frequently while you're learning, that'll help a ton.
Anecdote: I've seen folks (it doesn't sound like you're one of them though, tho) who kind of hold their breath and hope folks don't notice what they don't know. That's toxic: bad for the company and for the person (it stops them from being able to learn b/c they're so afraid to admit they don't know.
As long as you trust you can learn, work hard, and deliver -- go for it! There are always going to be new things to learn and jobs that are "just beyond us". It's finding the line between "way over your head" and "a good stretch" that's important.
Good luck!
Here's a hopefully useful anecdote from the early 2000's. I had a friend who had worked as a secretary for a few years while getting her BA in Business. Along the way, she somehow took a single class in Statistics that involved learning to program the SAS statistical analysis package.
On the strength of that one class, that wasn't even a programming class, she found a contractor job programming in SAS paying $45/hour which for a former secretary was a fortune. She asked me the same question and I gave the same answer: "if they'll pay you, then you're good enough." And from that week onwards, she happily deposited the paychecks! She confided in me that she felt guilty because she barely had a clue what she was doing and "was taking their money to learn on the job." Welcome to software development! Felt guilty enough to tell her boss who just shushed her with "oh, we know you don't know much; you'll learn."
If you think you can do the job, then apply for it.
so keep learning stuff every day. and more importantly start working somewhere! every waited day costs you time.
In other words: you're good enough, now get busy.
You never will. Ever. That's the difficulty: doing well despite constant uncertainty.
Don't think too much. Just start. Everything will fall in place.
Most people fail because they don't do it.
* Only compare yourself to the worst people getting paid to do something when figuring out if you are good enough.
* You can do what you can learn.