3 ms·
Question for the HN community: I've been learning Python on and off for about 6 months and I can answer all of these questions with ease. I'm subscribed to Inte
by frywhy 11y ago
Question for the HN community: I've been learning Python on and off for about 6 months and I can answer all of these questions with ease. I'm subscribed to Interview Cake's emails and generally figure out their programming tasks. Question is, am I good enough to make the leap to doing 'proper' programming? The gulf between hobbyist and professional coded seems huge. How did you all cross it?
- codecondo 11y agoThe only way to cross something is by going forward.
- nothrabannosir 11y agoAgreed. And willingness to learn is more important than any current skill you have. Bet on your future skills, not your current shortcomings. Don't think "can I do this?" but "can I learn this?".
- dexen 11y agoMay be a mild case of https://en.wikipedia.org/wiki/Dunning_kruger_effect https://en.wikipedia.org/wiki/Dunning_kruger_effect -- you think you know the correct solutions, whereas actually there are no single, unique correct solutions for at least some of the questions. Don't be discouraged, though -- to gather certain kinds of experience you have to go into 'proper' programming. As long as you're open to questioning your assumptions and current state of knowledge, you stand to improve :) Consider question #4 - there's no single correct way to indicate `underflow' condition. You could raise an exception, return zero, return negative value... it's all about considering and picking trade-offs, knowing convetions and matching client (caller) code. Consider question #5 - while certainly you can provide your worst FizzBuzz, a programmer with different experience would probably provide a much different, perhaps even worse example [1]. As author notes, the 5th question is about experience with ineffective, brain-damaged, ugly, unmaintainable etc. code. [1] speaking of some really insidious code: http://underhanded.xcott.com/ http://underhanded.xcott.com/
- Cthulhu_ 11y agoThing is though, these questions / exercises are just that - exercises. If you can write real code / real applications (could you build a contact form, forum, shopping cart, order form etc in Python?), then you're ready.
- collyw 11y agoI have been using Python for 4 years, and honestly I don't think I know the language so well (not compared to the knowledge I had of Perl before I started using Python). I use Django, and I have an in depth knowledge of the framework. It has done pretty much all the hard work, so its a case of understanding its high level concepts and plugging them, together, rather than being able to implement every one of its features myself. Whats going to be more use in the real world? Knowing how to use Django's reverse function, or being able to write my own in less than an hour?
- mikekchar 11y agoThis is an excellent question. Here is a blog post from a colleague of mine about how he got into professional programming without having an academic background in it: http://sharktank.co.uk/articles/how-i-got-into-programming/ http://sharktank.co.uk/articles/how-i-got-into-programming/ Now, I should say in advance that my colleague is very talented and not everybody can do what he did. You will notice, though, that he spent several years before he was able to make the jump. He's now a full stack developer and a good one at that. It is hard to give good advice because there are probably people who will hire you (at very low pay) even with as little experience as you have. You can then spend time working to improve on somebody else's dime. On the other hand, it will be very stressful because you will have a literal mountain to climb and you may even cause the failure of projects without realizing it. I think ideally, I would spend a considerable amount of time working on real projects on your own, spending 3-4 hours a day average. After a few years you will probably be more accomplished than many new grads out of university. The other approach is to go to school and get a degree. It is expensive (in time as well as money), but that piece of paper is worth its weight in gold at the beginning of your career. Whatever you do, good luck! Try to understand that it will be 10-20 years before you even realize how much you suck, so never give up trying to improve yourself :-) The only people who I've met who were not embarrassed about how bad they were at the beginning of their career are people who are still bad at their job.
- frywhy 11y agoThanks to everyone for the advice. I'm very aware that all I'm doing now is building very basic toy programs without any knowledge of how, say, a function that finds anagrams in an array of strings is 'useful' in the scope of a project a professional coder would work on. I've been dancing around Django and maybe it's time to dive in properly. I find great joy in programming but I'm also grappling with the fact that I work in a well paid tech field (online marketing) and that the market for coders in the UK isn't great, especially for a (maybe) entry level Python coder. Could I conscience taking a £25,000 pay cut to code? Unfortunately I'm not sure I could.
- mikekchar 11y agoI would encourage you to keep at it. If my colleague is anything to go by marketing people have an interesting skill set which can complement programming skills very nicely. Having experience with the business requirements is very useful and marketing requires a lot of people/presentation skills that many programmers don't develop. It will take a long time (years as I said), but you can get there eventually if you want. The best way is to just build personal projects that you actually want. I would stay away from the toy problems after you have a basic grasp of the concepts and just learn along the way. You will need to go back to the toy problems to polish certain skills, but you should finding out what you need to work on from your every day coding. Good luck!