6 ms·
Why You Shouldn't Code Alone
- catastrophallie 14y agoThats what it feels like to be a female programmer. only, when you ask for help you hear things like "that's okay, your a girl" or "why would you need to know that?". So you stop asking your stupid questions, and your self esteem is ruined forever.
- brendanobrien 14y agoTo the OP, thanks for writing. I'm going to try to act on it and get out to some sort of meetup. To you, catastrophallie, on behalf of male developers who happen to think women–ESPECIALLY women who program–are totally awesome, I'm sorry. I'm still confused on how being a woman has anything to do with writing code, and think people who pre-judge your ability do so on unfounded misconceptions.
- geoka9 14y ago... ESPECIALLY women who program–are totally awesome... ... how being a woman has anything to do with writing code... I agree with you in spirit, but, logically I think you have a fallacy here.
- lucian1900 14y agoNo fallacy. Parent is expressing admiration of both "women" and "woman programmers".
- deleted 14y ago[deleted]
- fredleblanc 14y agoIt's horrible that this is so prevalent in the tech community (and really any community, but I come from tech, so I'll just speak from what I know). It probably doesn't mean much coming from some random commenter, but I can assure you that there are a lot of great people (male and female) out there that don't think or carry on this way. That said, my areas of knowledge are in HTML, CSS, JavaScript and PHP. What I know in PHP could probably be translated to a lot of other languages. If you have any questions, you can certainly throw'em my way. Here are a bunch of ways to find me: http://fredhq.com/contact http://fredhq.com/contact And that goes for anyone reading this. I'm not always available (obviously), and I may not have the answer, but I can bounce ideas back and forth which sometimes is just what is needed.
- deleted 14y ago[deleted]
- jlarocco 14y agoThere's no excuse for "that's okay, you're a girl", but FWIW I'm a guy and I get "Why would you need to know that?" all the time.
- delinka 14y agoThis is what it feels like to be me and I'm a male programmer. I get slightly different responses of course. Like "that's not smart; why do you need to know that?" and it has affected my self esteem during my entire career. When I've run against the same wall for hours and repeatedly received this response from co-workers, I finally decide to monopolize their time for half an hour explaining the problem. And we discover I was indeed headed down the right path and Mr. MoreExperienceThanYou didn't know the answer anyway. Nothing quite so frustrating as a group of "experienced" people jumping on the "n00b" and telling them that they're on the wrong path only to discover the neck-beard-wannabes couldn't think past their own limited codebase. The industry is full of ego. And I've have to learn to code alone to avoid working with assholes.
- catastrophallie 14y agoCoding alone can be hard for anyone. I liked this article because I know there are countless men and women who feel this way. It seemed like a good cross gender way of explaining some of the frustrations of not fitting in the club. don't give up!
- Mz 14y agoI doubt that is specific to programming or really about ego. In the movie "Erin Brokovich", Erin gets treated that way when she asks questions. It turns out they most likely did not answer her because they had no explanation and it was just convenient to treat her like she was stupid rather than admit they were.
- delinka 14y agoYou are correct that it's not limited to our industry. I run into these kinds of people in many other places in my life. And if I've ever needed to spend any amount of time working with them, I prefer to work alone, interacting only when absolutely necessary. As to Erin Brokovich, she's an excellent example of confidence without ego. It's been difficult for me to cultivate confidence in the presence of others - I was never actually encouraged as a child (sometimes passively discouraged- "why would you want to do that? plenty of other people are doing that.") And apparently it's not common practice to encourage each other as adults.
- Retric 14y agoSounds like your on a terrible team, you might be asking people who don't know what their doing for help. However, I have found asking for specific advice is less useful than defining the problem, how your approaching it, and what's not working. Some times what might seem like a stupid idea is the best compromise available, but you need to get people past the ick factor before they will help solve the problem.
- dsirijus 14y agoAt my last company, I've worked as solo flash game developer. Within 2 years of active development, I've became one of the best in the region. Most of my interactions with other developers at the company (all Ruby guys) was about trying to explain to them that unit testing is absolutely not neccesary in my line of work (small games in impossible deadlines). Now, this might sound contrary to the proposition in the title of article but it really isn't. I don't code alone. I do it with the entire cyberspace behind me. No beer with fellow coders competes with that.
- codeonfire 14y agoSome people shouldn't code alone.
- jsaxton86 14y agoThis article is tangentially related to a question I've been thinking a lot about lately. At many organizations, the amount of time you spend programming is inversely proportional to your skill as a developer. As you become a better developer, you end up spending more time mentoring less experienced developers, fighting fires, dealing with management, dealing with customers, and dealing with other tasks that are not programming. Not only are you spending less time programming, but you're also in a state of perpetual interruption. Maybe this is good for the team in the short term, but in the long term, I am convinced this approach will cause the talent level of your organization to converge to a pretty mediocre level. What is the best solution to this problem?
- rikf 14y agoA Less experienced programmer does not necessarily mean a bad programmer. Its a myth that the best programming team consists solely of rockstar ninjas. I have worked on teams that consisted entirely of very very good programers and it resulted in a-lot of friction because everybody had there own philosophies and approaches to solving problems. This becomes more true the larger the team gets. I think the best team is a mix of skill and experience mixed with youthful exuberance.
- kitsune_ 14y agoI want to know a solution to this problem myself. I'm definitely the most skilled developer in my team right now. This sounds like arrogance, but it's the simple truth. I don't think I'm a great developer in general, but I'm just more skilled than my team mates who are really not that good. I'm constantly interrupted. There are always questions. It's such a drain. I want people who can show me things, who can validate my work, I feel like I'm working in a bubble. I'm stuck to online communities for feedback and input. I recently suggested two things, a) a couple of hours per week where individual developers can learn new stuff on their own. b) a meeting every week where we can share knowledge and mentor each other. I'm just fed up with the knowledge gap.
- guynamedloren 14y agoWhen I graduated college (with a non cs degree and no programming knowledge), I basically locked myself in my bedroom for 5 months with one mission: to learn rails and hone my frontend skills. I cut off almost all social interaction. I had 3 roommates and our paths crossed maybe once a day - usually when they were leaving for class in the morning and I was still up from the night before. I neglected 'normal' sleep cycles and followed my internal clock. Depending on how focused I was, I was often awake for days at a time. It was crazy, and it was the most productive period of my life. Ideas in my head were coming to life before my very eyes. I was building a powerful skillset that would allow me to control my future. And I did it without anything except my own drive and the internet. So yes, you absolutely can code and learn on your own. Some people can't.
- mahyarm 14y agoI did something similar during a 3 week break in HS . It was with python and the first ed of this free book: http://www.greenteapress.com/thinkpython/ http://www.greenteapress.com/thinkpython/
- pemulis 14y agoThe problem with the manic loner method of learning to code is that it can lead to burnout really quickly. I taught myself to code in a similar way. It was my senior year in college, I was getting a degree in creative writing, and my only programming knowledge was whatever was still rattling around my head from an introductory course in high school. I had an idea for something that I wanted to build, so I bought an HTML for Dummies book and started working my way down the stack. HTML, CSS, JavaScript, PHP, MySQL, jQuery, cron, VPS hosting, web APIs, and on and on. After three months of manic reading and coding, I had a working product and enough programming knowledge to get a job with a local startup. I was also a wreck. It got to the point where opening up a text editor made me nauseous. The main reason I applied for the job at the startup was to work with other coders, to alleviate my stress and isolation, but it was a marketing startup at its core, and all the other developers worked remotely. The people I worked with were great, and they had nothing but good things to say about my work, but I was the only on-site developer. It made me feel even more isolated. Honestly, I felt like a fraud. I spent most of my time at work teaching myself new tools. I felt like these were things that I should just know, and I couldn't convince myself that I was doing a good job, because there was no developer community around me. In retrospect, I know that my stress was irrational. Textbook impostor syndrome. Every time I fixed a bug for a customer, which I did a few times every day, I was protecting a revenue stream worth several times my hourly wage. But because the community wasn't there, and because I had burnt myself out over months of manic self-education, I couldn't internalize this at the time. I brought up my issues with the CEO - who was in the room next to me, since it was a small shop - but no matter how many times he assured me that I was doing a great job, it didn't cut through the burnout and the stress. When I graduated, I left the job behind. I also left coding behind, for about eight months. I made a few static HTML/CSS pages for various projects, but that was it. I'm back to coding again now. Everything is fresh and fun again. I'm working on an ambitious project, and I'm still a team of one. But I'm going to start visiting meetups and getting involved in the community, because I've felt the stress of being completely on my own. Your mental makeup may be different. You may be able to continue learning and coding on your own indefinitely and never succumb to burnout, paranoia, panic, or isolation. If so, that's great! I'm a little worried about your note at the end, though. Most people can't do this on their own, and it's not a knock on their aptitude. The emotional toll of isolation is what brings people down, and it's perfectly normal.
- asdfghtyulop 14y agoI never code alone, the voices in my head tell me what to type.
- Mz 14y agoDamn. If only I had not resolved my Multiple Personality Disorder...
- jmtame 14y agoI already wrote about this[1] but the time period where I learned the fastest and the most programming knowledge was the winter of 2008 when my cofounder and I worked out of the computer science building, and various other buildings on campus. Having someone who could help me get unstuck made a huge difference. Same story even farther back when I was working with new frameworks for a different company; a more experienced person who was giving me feedback on my code was more help than I could have ever received on Freenode, Stack Exchange or from reading a book. It's a lot like setting a new years resolution: it requires willpower and discipline to learn something difficult like programming (everyone has their own opinion on whether it's easy to learn or not, but I think it's easy to lose sight of all the advantages you had growing up with computers and incrementally learning vs. complete beginners). You need others to hold you to it and help you whenever you get stuck. [1] http://jmtame.posterous.com/this-is-how-you-actually-teach-people-to-prog http://jmtame.posterous.com/this-is-how-you-actually-teach-p...
- dudeguy999 14y agoOn the flip side, I tried (and failed) to learn to code several times before it finally stuck. It took me days just to get the programming environment set up! What finally or me over the hump was working with a partner when I went back to school.
- jmtame 14y agoIf you're on Windows, setting up Ruby on Rails and using it can be pretty difficult because you need a proper terminal, and Windows' Command Prompt sucks. We've used Vagrant virtual boxes with Ubuntu with our Windows users at Bloc. There are also lots of other issues with running Ruby on Windows like character encoding, file paths, and particular gems not working properly, but overall the experience of setting it up is pretty painful for beginners and a huge deterrent to learning to program.
- jacoblyles 14y agoI love the resurgence of the old-school learning model (in-person). It's like university, but focused on practical things instead of trivium. And with the shortage of developer talent today, an 8-week $3,000 course can have a huge return for your students.
- josefonseca 14y agoIf you have the proper technical background(the author says he does) then getting tips with a team is a most productive learning experience. BUT. If you do not have the proper theoretical background, then learning from peers without proper books and the "alone time" will most certainly turn you into a hack. Even highly skilled coders like demoscene hackers and hardware specialists had to have some proper theoretical background. Linus Torvalds was in a good university and used Tanenbaum's books to later defy Tanenbaum himself. The fact is Linus didn't just crop out of nowhere and hacked Linux together, he had proper theory to go with his major league hacking foo. Social interaction is great, fun and a wonderful way to learn and trade cards, but there is a time to code alone and it's a necessary one for you to improve.
- maratd 14y agoI can agree with the need for alone time, but the ivory tower worship is a bit much. My professors set the right tone and pointed me in the right direction, but that's about it. Theoretical background? More like a loose set of principles mostly boiling down to an aversion for needless complexity and a desire for elegance through proper organization.
- krsunny 14y agoIsn't "complexity" just a euphemism for "the programmer did not understand the problem he was trying to solve"?
- ecaradec 14y agoI'm probably the strongest coder at my startup and I agree that it can feel lonely when you have a hard issue and you know that nobody is going to help you. Meetup group are totally awesome, I was scarred as well at going to a meeting alone with no connection at all. There was a lot of other geeky people doing awesome thing in other companies. It feel good and it's also a best investment in case of job loss.
- irrationalfab 14y agoAnother great alternative is to join an open source project. Your learning will be skyrocketed comparing to what you'll learn by your self in a give amount of time.
- FuzzyDunlop 14y agoCoding alone and coding in a team/with others shouldn't be considered mutually exclusive. You can learn valuable things from both. You will most likely prefer one over the other, though. Alone, you might be able to spend more time with the theory behind what you're doing, or learning from books, or learning things in your own time that are beneficial to you but not immediately applicable. You may also have a vastly increased responsibility, especially if by working alone you mean freelancing. This teaches you things you'd struggle to learn any other way. But then you go to work, surrounded by colleagues, and in a team, and all of a sudden there are all these people, who have a similar skill-set to you but different ways of applying it, and different ways of thinking. You learn to ask questions, and learn how to answer other people's technical questions verbally. You may also learn that your way of doing something can be done better. I prefer the team-work, personally, but that doesn't mean that I wouldn't, or hated, working alone. I instead found that what I'd taught myself was greatly strengthened by the experiences and alternative approaches expressed by colleagues who thought differently. I understood design patterns and javascript after a colleague typed out and walked through examples. He understood the event-loop and blocking after I demonstrated that in practice and let him question what I was doing. And, in reference to guynamedloren's post about burnout, working with others might allow them to give you some perspective on your own stresses and anxieties. They might have been there and understand, and help reassure you. They did for me, at work, but no one could stop me pushing myself too far when coding alone at home. If it's not for you though, it's not for you.
- fatalerrorx3 14y agoI've worked alone for myself (freelancing), and alone for a startup (remotely), and together with business guys for a startup. Here's what I came up with: working alone for freelancing is usually fine because the freelance work that you get is usually not as complex and requires little to no fore-thought, you can just jump into requirements and go. Working alone for a startup has it's pros and cons, working alone is great for concentration but working together with others who share the same vision and discussing solutions to technical problems in non-technical terms is definitely valuable for all involved. The one thing that's an issue working with a team of strictly non-technical guys and being the only technical guy is explaining what is or isn't feasible in understandable terms. Having more than one technical person involved in a team of people who share the ultimate vision is probably ideal because technical issues can be discussed between each other to see if a solution can be found, sometimes I think you just need another point of view.
- cgmorton 14y agoNot to be glib, but has this guy never heard of IRC? First thing I do if I'm learning a new language is join the IRC channel. Frankly, there are smarter people in there than you're likely to find at a local meetup. It sounds more like the OP's problem was more along the lines of 'didn't have any coder friends', which is a much less universal problem.