So here's the story: I'm a recent CS grad who has been working for a government company for about half a year, not because it was my first choice, but because I took their university scholarship and I do not have half a million to pay them back. It's sad because I initially had a Silicon Valley job offer, but had to turn them down and return to my native country because of the whole situation.

My work currently revolves around more R&D work and consulting the customers, as such I spend a big bulk of my time organizing meetings and doing paperwork, instead of development work which is what I really enjoyed in previous internships elsewhere. The culture is to work individually on a project, version control is rarely used (!) and I'm not interacting much with other team members. I've tried hard to fit in, but I just feel bored and sad most days, as a result it is affecting my performance.

I'm trying my best to get out of this hole, by being more active on Stack Overflow and having a few side projects (which I find a lot more interesting than my work), intending to submit some patches to open source soon, but I often come back from work tired and demotivated, rolling on the bed instead of job searching and working on my projects.

How can I force myself to carry on with work because of debts? What can I do to regain confidence in myself as a programmer?

EDIT : Thanks for the advice, it's enlightening to see different perspectives and great to have an experienced & supportive bunch of people here at stack exchange! now back to those bugs...

  • 2
    Hi d3lphi, welcome to the Workplace, the Q&A site for questions about navigating the workplace. A few points, first, I'd suggest clarifying the point about gender, as people from either could take your statement the wrong way. Also, I'm going to edit the last part of your question a bit so that it focuses on finding answers to the problem and not a poll. Feel free to make another edit to focus on clarifying the question if my edits don't quite hit the mark. Good luck! :)
    – jmort253
    Dec 29, 2012 at 3:29
  • I'd say side projects and/or open-source. Also, you could try going to your boss with the situation (unless you have to pay back the debt if you are fired, what have you got to lose?) Dec 29, 2012 at 3:49
  • 3
    Wait a minute, what is your role at this internship? Are you getting pushed into handling customers and managing meetings because of the confidence issue when you should be writing code? Why would this government outfit give you this internship only to have you not actually contribute the skills you've earned? There has to be somebody there who expects and wants more from you than that. If there isn't, make that person you and get yourself fired so you're free to get that gig in silicon valley. Dec 29, 2012 at 8:56
  • 1
    @Amy: Yup I'll have to pay back the debt regardless (with interest!), but the longer I stay the lesser it will be. But changing the situation as much as possible & talking to higher management sounds good.
    – d3lphi
    Dec 29, 2012 at 14:35

3 Answers 3


A year back, I was nearly or in an even worse situation than what you are currently, struggling with the monetary and family concerns. It took me 2 years to sort out the things from my home grounds to be at a place where I was supposed to be after completing my graduation from CS stream.

So, from my personal experience, I can suggest to you the following:

  • Try to remain positive, irrespective of the situation.
  • "Rome was not built in a day" so with your career you need to be continuous with the development process.
  • IT is one of the most dynamic industries, you need to be updated to follow the pace.
  • Try to spare some time from your daily work and open source would really be a good option (suggested by some users here, as asked once My Question).
  • For coding purpose try to grab concepts about design patterns, algorithm writing, programming etc.
  • Look at this site:http://projecteuler.net/; I'm using it for improving my coding.
  • May be some people won't like this as an answer but from my personal experience, Workplace is a great place to remain positive, follow the questions and answers as you will surely find that you are not the only one who is struggling.
  • Also try to listen your friends, family and ask for their suggestions over your career set up but keep the final decision up to you only.

One thing you should probably keep in mind is that while being a developer is a great thing (I've been one myself for almost 30 years), you cannot underestimate the long-term benefit of learning how to relate and, more importantly, listen to your customers. Whether you choose to believe it or not, you're in a pretty good opportunity right now, from what you've described. You've got the passion that a developer requires to succeed, but now, you probably need to work on the patience and social interaction skills that doesn't always come when you're spending six to eight hours a day in front of a computer. Even if you plan to work for yourself, you should consider this a chance to learn about the business side of software development.

Working on side projects to keep your skills fresh and sharp is a very good idea, but give this position a chance for a little while longer. If the work is tedious and boring, use your technical expertise to find ways to improve the quality of your time. Develop small workflow automation projects to help you keep your tasks under control, and to also provide you with the opportunity to flex your coding muscles. It sounds like they're telling you what you need to do, but not how it needs to be accomplished. So, don't be afraid to use your imagination. If you handle it right (which I'm confident you are capable of), the right people will take notice, which wouldn't hurt your career aspirations at all and will definitely make the days go by much easier.

Sometimes, applying the saying "When life hands you lemons, make lemonade" isn't as hard as we make it for ourselves...

  • 4
    But what if you really hate lemonade too? Dec 29, 2012 at 9:04
  • not to mention of your most important "customers" will be your boss and those you interview with
    – enderland
    Dec 29, 2012 at 18:52
  • 2
    @Erik Reppen - "But what happens if you really hate lemonade?" Then you give it or sell it to others. Or make lemon squares instead and give away or sell those. Or you slice it thinly and decorate it with a gin and tonic, and drink, give away, or sell that. Or you trade the lemons for limes, squeeze them, and put into a blender with ice, triple-sec and tequila. But those are all a bit less pithy as sayings.
    – GuyM
    Dec 30, 2012 at 5:35

I've found myself working in a similar environment before. I was able to still do a lot of programming, but the culture of isolation was just as much of an issue. Not only did my motivation and performance suffer, but there was no counterbalance to my weaknesses, so the resulting software suffered as well. The combination eventually resulted in getting let go before I could turn things around.

These are suggestions I have based on what worked and didn't work for me:

  • "Remain positive" is absolutely good advice, but one of those things that's just annoying to hear. It's not like you're not already trying! Try focusing on yourself and what you can do to be a better developer and team player. Imagine you're in that sweet Silicon Valley job, but still have to do this sort of work while you're paying your dues as the new guy. Do it like you want to impress your awesome new bosses while minimizing time spent not programming. Use your CS knowledge to help architect the workflow to better match the technical structure of the project. Work on optimizing document creation by exploring templates and learning document editing shortcuts and tips.
  • Neil's right about the opportunity to better your communication skills. Understanding a customer's wants and needs, and knowing how to spot the differences, will always be an essential skill. Let the customers' excitement be contagious and focus on helping them achieve their goals; let them be your teammates. If you're an introvert like many programmers, work on being charming and affable, too. Think of it as entrepreneur practice; this is one of the classes required to be a successful start-up.
  • Ditto for workflow automation. Where possible, script and automate the mundane, regular tasks. As small companies become successful and grow, this is an area that starts to seriously affect progress. Maintenance is a substantial time sink; become a guru at minimizing it robustly.
  • If version control isn't really used, that gives you a lot of leeway to learn about setting it up and developing good branching tactics and commit habits. You can experiment with ideologies and technologies without impacting others. Set up a Git repository for yourself and practice juggling dev, bugfix, and release branches, play with automatic scripting to add version numbering, etc. If you'll be there longer enough, learn more than one way to do these.
  • Like swapnesh said, work on your development skills. If you still program things, practice some of the software development methodologies as truly as you can on your own. It's probably pretty hard to Scrum as one person, but you can still get a feel for it. Read up on design patterns and best practices. Maybe a program you need to write is appropriate for using a Class Factory even though it will never scale up enough for it to make a difference. You can still use it for practice. You could even try out different architectures for the same problem to learn about using them in practice.
  • Isolation can be a big issue. Not only is it self-reinforcing, but it's easy to place blame on individuals for not trying harder. Lunch with people, as much as the culture allows; brown-bagging is frugal, but comes at a social cost. Find out what other people are good at or love and treat them as local experts at it. Say one person is known for network programming, and you need to implement some message parsing or the like. Come up with your plan, and then ask them if they think it will work or could be improved. Or try your plan and do the same thing if it needs any reworking. It doesn't matter how good you or they are; you will be giving them an opportunity to feel good showing their expertise and socialize at the same time. It's important for bonding, and if it starts to catch on, you may find yourself getting more chances to work on code. This also works for all the non-programming you stuff you have to do.
  • Now's not the time to be aggressive about challenging the status quo. If you try to champion version control for all or something similar, you'll likely foster resentment, increase isolation, and start to be seen as a rogue. Don't be afraid to help improve things, but be humble and helpful about it. Crusades don't win friends.

Hopefully this year-late post is helpful for you or someone else coming across it. The main point here is to focus your efforts into being a good programmer. Your job is still full of opportunities to keep your claws sharp and learn more, you just have to find and take advantage of them yourself. Growing is what will increase your confidence in yourself, and as you make your work environment more and more productive for yourself, it will grow more tolerable.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .