Ask HN: How do you get past difficulty learning what's needed for a new job?
I have one client right now who pays me out of pocket, but the work he's asking is beyond my understanding. It's dealing with a new system that has a lot of parts. It's well documented, but when I read the documentation, it's just not sinking in, I'm not "getting it". My eyes just gloss over and I re-read the same sentence over and over for 3 minutes without any progress. This is the same thing that happened when I tried to learn Rails about 8 years ago.
Is it possible to push past this and force my mind to learn new things? Is being 32 years old and in very poor health a show-stopper for learning new complex concepts?
My first thought is to just get another job, one that I already know how to do. But that's outside of my control, this is my only client and will be for a few months.
Any advice is appreciated. I know you, I recognize your username. You wrote the tool for OSX: phoenix, hydra, mjolinr, etc. I think you are a very talented developer. I think you'll definitely be able to get a job in Chicago easily. There is no shortage of tech jobs. If it is too much stress for you to work as a freelancer, just get a full time job. There is no shame in that! Yep, recognized the name too! My advice would be: fake it till you make it. Relax, try to split the whole thing into small pieces, try to understand how they interact with each other, try to understand the dataflow. Also, in my experience you can never actually grok the whole system at once. It is a slow process. And what always helps me: separate things that _actually_ matter for your work and everything else (the power of abstraction!). Not sure how to explain it properly. Basically, when I start working on a new project, the number of new things (new words, terms, abbreviations and other domain-specific stuff) is often overwhelming. But in most cases it doesn't matter. Most systems are pretty much the same: data flows here and there, this thing validates stuff, this thing calculates something, this thing stores results etc. They just have different names and use different words, but in reality they are the same thing. Finally, it's just a job. Take care of yourself, your health (including mental), relax, take it easy. UPD: also, really, take care of your health! Eat healthy food, do exercises/go to gym, daily walks (it makes a huge difference!), sleep well. Also, some supplements help me a lot: vitamin D3 + K2, Zinc, Fish Oil, Magnesium + Calcium. For me it made a huge difference!
You can also try L-Theanine (with coffee). I don't like the idea of "fake it till you make it." Sorry but that is horrible. Just think a second if everybody starts doing that! Just for a second, consider a different job, and think what will happen if everyone start doing that. If your doctor does that, a truck driver does that, if an engineer does that when building a bridge. I'd say, you should be honest and direct. Just tell your employer/manager: I don't know that, and I need x amount of time/resource to learn it if we need. You shouldn't fake it. They should know the real cost, the actual capacity. Either they will support you to learn it as part of your job, or they know that it works better if they think about alternative solution/design base on actual capacity/resource. Nobody can blame you for not knowing something as long as you are willing to learn and they are willing to support you. "fake it till you make it" also doesn't help you with your stress condition. it will make it even worst as you and your employer don't have real expectations. Don't build that kind of culture in your job market and society. But everyone already does that. When you get a new job, you can't just merge in seamlessly like you've been working there for ages. Of course, saying 'fake it' I don't mean 'just pretend that you know stuff, but don't actually learn and don't work hard'.
You have to learn, you have to work hard to really understand the project etc. That'd be great. Wish I could get one. in very poor health Do some care-taking first, then try to sit down and work. Daily hot baths in the evening can help. Upping the cleanliness of your abode can help. Getting pickier about your diet with an eye towards good nutrition can help. A daily walk can help. Sometimes, coffee or another source of caffeine can help you concentrate. Bonus: If you regularly work on your health, it can get better. I'm not in a position for any of that. We're living literally week to week, and every single hour that I'm awake I need to work. Our bills are past due and we're overdrawn $50 in the bank right now. I'm making $25/hour with this one client, and it's barely enough for the life we have. I would downsize our lifestyle if I knew how but we can't even afford to move to a cheaper city. As it is right now, the only choice I have right now is to just work on this client project every hour that I'm awake, and sleep no more than 7-8 hours per night. Not that you can do anything about it right now (understandably) but when you can you might want to look hard at diversifying your customer base - Having a single client who you absolutely need to stay a float puts you in a very risky position (take it from someone who did exactly that a couple of years ago and it nearly finished me off - I hit insane hours of work per week and my health went to shit at the same time, while the amount of work didn't cause most of that (not much you can do about a spinal issue I'd had since birth)). In the end I just said fuck it and looked for a full time job, I took a pay cut in terms of hourly rate but when you average everything out across lean and fat times I'm only about 20% down over a year for working 37.5hrs instead of 60+ every week, week in week out. I'm a year into that now and mentally I'm in a much better situation than a year ago but it's taken nearly the entire year to get even close to feeling 'normal' again. In terms of learning stuff quickly, change you scenery - Go read the documentation on a laptop in a coffee shop instead of at home (or a local library if money is really that tight) :- When I really need to grok something I get out the house and do it, two cats and the boy makes it hard at home. Something doesn't add up. Assuming "working every hour you're awake" means something like 12 hours/day 6 days a week, that'd be a $90k/yr salary at your stated rate of $25/hr. A more realistic (but still severe) schedule of 10hrs/day 6 days a week would be $75k/yr-- even in an expensive city, far from the brink of homelessness. Am I overestimating how much you're working? Or is the income being consumed by something? I've only been a consultant for 2 months, and the reason I say every waking hour is because we are only just now getting caught up with bills, but we're still pretty far from being stable, and this weighs heavily on my concentration, so while I may work 12 hours in a day, I only get maybe 6-8 hours out of this work that I can actually justify billing for, because the rest of it was just spent staring at a screen and not really knowing what to do. And besides that, I have several children who need at least some of my help and attention throughout the day, and my wife who needs my help with them. So there goes another 2-4 hours. So even though I'm trying to get to a computer and type stuff in to count for billable hours throughout the day, this or that kid comes in needing something, or it's suddenly lunch or dinner time, or like basically everything breaks up the day and ruins any productive flow I could get into. It sounds like you need to manage your time, including making time to take care of your life, especially if you're spending handfuls of hours every day simply stressing. If that time is going to be not-work, then it might as well be time spent managing your life and your future. If you can convert three hours of "sitting and stressing" time to two hours of "self and family-care" and one hour of "productive work", then that is an increase of productivity and pay. Also, as others have mentioned, reading and learning a system is billable time. Programming is thinking, not pushing buttons. (Staring off into space or stressing or distracting yourself with social media is not, however). It would probably do you well to find a way to clearly separate work and life time/space. Work in a library or a coffee shop away from distractions, and set aside time during the day to be focusing on work and work alone. Take responsibility for controlling what you spend your time doing. I mostly agree, but staring off into space can definitely be billable time. In fact, I think even time spent off-task can be billable, at least partially, as the brain needs time to digest what it has been presented with; I frequently find a short break can get me unstuck on a problem. I think Patrick McKenzie recommends contractors bill by the day instead of the hour, partly to get them to consider necessary break time as billable. Of course, if you get to the end of a day and realize you really have been very distracted all day, you don't have to bill it as a full day. Family distractions can be a big problem, though. You have to have blocks of several hours — I think the ideal might be two 3-hour blocks in a day — where you know you're not going to be interrupted, short of a true screaming emergency. Getting this across even to one's spouse, never mind a young child, can be very difficult. Getting out of the house might be the only way. As Paul Graham once observed [0], even the prospect of an interruption can be enough to keep one from getting into a flow state. This is where I get stuck actually. I try to digest some information, but then I start worrying that I'm taking unreasonably long, that my client is definitely going to ask for a justification for why something that should have only taken 1 hour ended up taking 3 hours (because it could take him 1 hour or even less), and I won't have a good answer. Does the client actually ask for such a justification? Anyway, let's say that you're right: something that would have taken him only 1 hour takes you 3 hours, because you're still learning about the code. I can tell you, speaking as someone whose time is valuable and who has to delegate tasks to people who don't know the code as well as I do, that I know it's going to take them longer, but it's an investment we have to make to get more people up to speed. I understand that in your circumstances, "relax a little" is not easy advice to take, but it might be the best advice I can give you — along with making sure you have enough uninterrupted work time. It does sound like you need to get out of the house. Talk to your wife and kids about it. You close the door and work, if it's closed they should not interrupt you and if you open it they know they can talk to you. I think your problem is that you don't get shit done because you get interrupted so often and than know exactly that you aren't making any progess and go straight into panic mode. Start with step 1: close the door and start working. This is intended as helpful. I would very much appreciate it if you read it with that in mind and not read it just formulating your argument for how I'm wrong and just don't understand your situation. -- I've raised special needs kids. I'm seriously medically handicapped myself. Unless your children are all under the age of two, there are things you can do to empower them to take care of themselves. Store things they need where they can reach them on their own. If you have a microwave, set up microwave foods and microwave safe dishes near it. Let kids feed themselves when they want to. If most of the food at home is adequately nutritious and they are given some simple guidelines, this won't undermine their health. For example: My son liked eating cold noodles from the fridge with Parmesan cheese. I told him if he had an apple to go with it, that was a perfectly acceptable light meal. He did that on his own often in elementary school. Give them very simple rules and standards to follow, such as "I need to be able to walk to your bed, dresser and closet without hurting myself." Then let them figure out how to meet that standard. I homeschooled while bedridden. The kids piled into bed with me and I read to them. The point of that: Handicapped people (such as your wife) can often do a lot more than other people like to believe they can. Their physical limitations need to be accommodated, but it doesn't mean they can't do anything. However, they frequently do not have the energy to deal with their physical limitations and also try to prove to other people that they aren't useless. So the attitude and mindset of folks around them matters a great deal in their ability to both contribute and to lead full lives. I'm the primary breadwinner for my family unit. I work part-time and intermittently as I am able. Over time, I have gradually increased my earning capacity, in part by focusing on getting myself healthier. In my household, we talk a lot about "primary breadwinner privilege." When I had a corporate job, my adult sons took over the women's work at home. I'm firmly convinced that a lot of men get as much done as they do because social expectation bends out of their way to accommodate The Job, not their gender per se. That line of thinking has been very helpful to me and my sons for trying to find a path forward under extremely difficult circumstances. So it isn't being included to man bash. It's being included in hopes that it's somehow useful to you as a mental model. If I have to spend time thinking about a client's work, I bill them for it. Ultimately, writing software is a creative process and they're paying for my brain power. I've never had a client come back to me and say I'm billing too many hours. I was in the same boat, I was floating via a single big client and the situation was no good. I don't have the health issues you have, so maybe it was easier, but I hit the job application process hard and found something. The interview process was extremely stressful and difficult and I really wanted to give up, but things turned out well in the end. It sounds like you've got skills to offer and there's allegedly a shortage of good developers out there. Maybe you could job search in a lower competition area? I went job hunting for the past 8 months and got 30 jobs and all of them rescinded their offers because my reputation is radioactive. So I would love to get a full time job. But it's not my path right now unfortunately. I would absolutely love that though. Ouch. Is there a way to rehab your rep? No. Even without background checks, every employer ends up googling my name when I get hired, and rescinds the offer 100% of the time. My only hope of being a professional programmer is to do contracting with people who give second chances. I had two clients who have done that, but one cut off contact with me. So I have one client. No way to expand that. I'm sure you will take this as argumentative, which isn't really my intent, but, other than the hot bath part, I did all that while homeless. If you get access to any food at all, you can work on eating better by educating yourself about nutrition. I'm author of the San Diego Homeless Survival Guide and Pocket Puter: https://sandiegohomelesssurvivalguide.blogspot.com/ Best of luck. The thing about being homeless is that you have a lot of time. I had a lot of time while in jail too. I exercised 2 hours a day and ate healthy and felt great physically. If I spend any time exercising or taking a walk or spend my time doing anything other than working every waking minute, my wife and kids will be homeless. Your productivity schedule is why you're not able to learn - it's like wanting to build muscle before digesting the food. Study the system a bit, then go and exercise for half an hour, which is billable time because you'll be thinking about what you studied while doing a couple hundred mindless reps. If you can solve the problem away from the screen and keyboard, and then come back and just input your solution, it's work. You're being paid to think, not for how often you push buttons. From personal experience it sounds like you're in a very self-destructive pattern that it going to result in collapse from a combination of illness and stress. Not performing any self-care means you are running up a bill that someone else is going to have to settle if you fail. > [earlier] while I may work 12 hours in a day, I only get maybe 6-8 hours out of this work that I can actually justify billing for > If I spend any time exercising or taking a walk or spend my time doing anything other than working every waking minute, my wife and kids will be homeless. These two statements do not seem consistent with each other. If 4 - 6 hours of your work day is wasted anyway, you might as well spend at least some of that doing things to make yourself more productive. In jail, you had a guaranteed roof over your head and a meal coming to you. Homeless people have been known to commit crimes to get that deal. Please don't talk trash to me about what it means to be homeless. In addition to having spent time on the street, I have also had a college class on homelessness and public policy and also interned at a homeless shelter (years before I ended up homeless). You say you don't have time to do anything but work, yet here you are on HN a) asking for assistance and b) wasting time arguing with me about things you know nothing about. Some things for you to think about (privately -- I am not looking for answers from you here): Why isn't your wife working? (Assuming you are in the US) Have you called 211 to find out what local resources there are to help your family out? If you have called 211 and they have nothing to offer you, have you called all your local churches to find out what meal and other food resources they have to offer? I'm getting rather angry about how you reply to me, so I think I need to just stop here, let this go and let someone else help you. Best of luck. I'm not talking trash. You and I have had different experiences with poverty. I meant that if I was homeless, I'd have more time like I did in jail. And I only meant that in contrast to how right now I have no time. Technically I should be working right now, but I came here to ask for help thinking it might save me a few hours of frustrating non-billable time spent staring at code and not getting it. We have looked into every single possible resource. My wife has a disability that's incredibly difficult to prove with insurance or the government. It makes her unable to move for large parts of the day several times per month. She literally drops things and is unsafe to drive, and it just randomly comes on out of nowhere. So she's unable to work because of this, and we're unable to get disability for it either. We've gone through every single local church and food bank. She just stopped at the food pantry yesterday. We are on food stamps. I'm saying all this knowing that it's a waste of billable time, because I think it's important that you know that first of all I don't mean any offense, and second of all that I'm not exaggerating when I say that we really have no other recourse at this point. Sleep more, memory works better if you sleep longer. Exercise a bit and start working on your mental/physical health. Downsize your spending, get rid of expensive mobile plans, subscriptions for stuff like Netflix. Get cheaper house/apartment, learn how to cook. Work on your confidence. Attend local meetups and talk with people. Chill out and stop whining. There plenty of people that would swap places with you. You are a healthy white male with a family living in the US. My guess — the kind of thought you need to “grok” that system (slow deep understanding) is unavailable to you when dealing with the kind of thought caused by your situational stressors (fight or flight survival). Doesn’t mean you’re unable to learn new things. It means your cave-man brain doesn’t think learning system docs is as important as slaying predators and fortifying your cave. Ironic, since the way out of the stressors is doing the one thing your brain doesn’t think will help. You have to get your subconscious to believe that. Tell it to yourself constantly, Thoreau prayer and ‘this too shall pass’ style, ‘meditate’ on the idea that you have a clear path to no stress because you have a developer’s mind, and by using that developer’s mind, you will slay the predators, fortify the cave, and protect your family. Give yourself the permission to let the urgent stress go, so your subconscious can work on the important thoughts. You are in burn out. It's not that you aren't intelligent or capable of the work, but it sounds like you just haven't clocked out in a long time. You can fight burn out for a short period but you can't delay it forever. You resist burn out by working out hard, engaging in stimulating non-job work (eg a hobby) and engaging in intentional relaxation. Ultimately you need to find a way to take time off. I had a similar problem at one of my first jobs, I was given ownership of a few different highly complex and lightly documented codebases: sshd, kerberos, ntp, netsnmp, etc. Other commenters are giving great advice around burn out, depression and health -- I'll leave that to them. On the technical side, two things helped me with understanding complex code bases: 1. Write and draw on paper the object model, stack, protocol, interface, anything you can glean from the code or docs. Start small and keep adding to it. This helps you "chunk" the new information and have somewhere to attach new insights. 2. Run the system (or parts) in debug mode with maximum logging. Save the output and then start stepping through it line by line from the top. Find the source of each output in the code, try and understand the general area and then move to the next line. This will start to give you a good understanding of program flow. Combined these two techniques will make it much easier to understand what is happening and when -- all you have left is to figure out why. I'm 34, I've recently had to learn a ton of new stuff, some that I really didn't want to learn (asp.net? From the early 2000's? Yuck). Also lots of more complicated things - I'm flooded with information daily and it's a chore keeping up. I almost always have the feelings you're experiencing in the beginning. The trick is to sidestep the mindfuck and keep trying. Ignore that dissonant feeling that comes with not understanding. In my experience, success is a function of grit more than anything else. Also, a practical strategy that helps me to push through issues like this, is to get out a spiral notebook and a pen and to break the problem down into small chunks, and try to tackle those one at a time. If I'm really stuck, I'll write a list of all of my problems, with a space underneath. Then I'll think about the problem a little, and write a possible tactic to try for solving the problem. It sounds stupid but it really helps (I'm just applying the [Feynman Algorithm](http://wiki.c2.com/?FeynmanAlgorithm=) here). Finally, 32 years is not old. You're just barely hitting your stride. I'm 34 and I've recently discovered that my experience is valuable, and gives me an edge over my younger peers. You're only as old as you feel. If you stop believing in yourself, it's a self-fulfilling prophecy. Good Luck It sounds like there is a financial aspect to what you are looking for help on so I would like to comment quickly on that. You may have some options to adjust your debt/finances to lower your costs. If you do have credit card debt, there are services to consolidate them. If you have reliable income, even if it is freelance type work, you can use that to get a small business loan which could be less expensive then putting expenses on a credit card. If the income is not reliable try to make a deal with your client to make it a longer term contract. Guaranteed income is more value in the long run than big chunks of money at unknown times. There are some things you might want to try to expand your current business:
If you feel like you have a working model for completing work, look for a business partner, whom you trust, to help turn that into more business. If you know your client well, think of other products or services you could provide them that would be valuable to them (that they would pay for) but would be less time consuming. Right now, it sounds like your time and money are your most precious assets, but you have a wealth of knowledge and a working relationship with a client. Think of ways to exchange your knowledge and social capital (relationships) for more time and money for you. The free coursera course "Learning How To Learn" really helped shape the way I learn and practice new coding concepts/languages/frameworks, etc. Here's a pretty good summary of it: https://medium.com/learn-love-code/learnings-from-learning-h...
Barbara Oakley (from the course) also wrote a book called A Mind for Numbers if that's more of your style.
A tip from the book for your problem of "My eyes just gloss over and I re-read the same sentence..." would be to stop and break that sentence down into fragments, and understand each fragment before you try to comprehend the whole.
I would often just reread the same paragraph over and over, but that one little tip has really helped save me time and aided my comprehension of the subject. i appreciate that it sounds like you're in a stressful situation in terms of your family's cash flow. is it possible to switch your arrangement with your client to daily billing? in a way that doesn't leave you worse off financially, compared to what your average daily revenue is currently based on hourly billing. i dont have experience with pitching this to people who had previously agreed an hourly rate, but some of the other folks here might have suggestions for how to frame such a conversation so it comes across as a win for your client as well (focus on the output of your work rather than measuring your time inputs, maybe?). if you can do so, it might make it easier for you to justify timeboxing some time every day for self-care and non work stuff rather than feeling the need to bill hours, and help you produce better work in the long run. Honestly, I'm in a similar boat where I work constantly and gave alot of external stressors. You're a knowledge worker. All the work you do...you do with your mind. You NEED to separate from your distractions. If you have more pressing needs that you can't get out of your mind it will be impossible to learn. My suggestion is figuring out how to get your mind in a place where its 100% focused on your work and you are able to find that flow state where you tune everything out and can work and learn. Things that help me are 1> Managing your real life like a project manager. Get the most stressful priority things finished as fast as possible. Or at least in a place where you understand and feel more in control. 2>Automate as much as possible(autopay bills etc.) In your life and outsource tasks to your family that they are capable of. You pay their bills they can chip in.. The goal of this step is to get rid as many trivial physical and external stressors so you can get your head focused on work. 2> Distraction free place to work. This is critical. Coffeeshop, coworking space, private home office....all it takes is a single distraction and your mind is out of the game. 3> Carve out large blocks of time where you can just...work. No appointments, no meetings, no interruptions...this may require scheduling meetings in the morning and working in the afternoon. Also, beware of friends and family..they will try to cut into this time...and it's very difficult to say no to people you love. 4> Do practice excercises in your mind and compare them to real world. I've found when Im having problems focusing on things it's because it's too abstract sometimes. And I have to bring it down to earth.
Like start run a chunk of code thru a function in your head and then run it on the computer to see if your mindmap is correct.
Like a poster in this thread said it's active learning which helps alot I think. 5>Physiological hacks: Some people say Yoga, antidepressants, nutrition, and/or excercise help. I typically dont practice a single one of those regularly but do notice I'm deff able to.focus more after I excercise. I think just getting your mind at peace is way more useful than Physiological hacks but these do help. Studies have shown that excercise is as efficacious as anti depressants. So take that however you want. Anyway good luck sir. There was a thread not so long ago about approaching large codebases. I think you might find some of the advice there useful: https://news.ycombinator.com/item?id=16299125 I think you're just in a local bottom of the learning curve. Tell your customer you need time to understand his product. If he complains, say someone else than you would probably take more time. https://medium.com/trafficandcopy/the-learning-curve-is-kill... First off, do not give up. This is a struggle for even the most experienced people when dealing with a sufficiently complex new system. Try to focus on small, noticeable wins. Focus on a narrow part of the system that seems relevant, and try to start fiddling with and see what happens. If the system has tests, try going through them as it is often easier to understand how a system ought to behave than the details. Try to write out difficult sections (pen & paper) to get started. I've found that gives my brain the time it needs to get a handle on overly complex or boring texts. Assume it's going to take you time so don't aim for completing too much the first few times. Don't worry about how much time it's taking, just worry about getting a couple of conceptual wedges in place. Follow pomodoro method. Take care of your health separately but as a first priority. Take it easy and don’t put too much pressure on yourself. See if you can get hands on with the system, preferably a staging/dev clone. Break it, try changing a feature, adding a feature, dig in anywhere that’s comfortable. Just reading docs even excellent ones isn’t always the most efficient path to grok a new system. When dealing with a code base that has tests, I try to write a few of my own and run them successfully. No matter how trivial, at least it feels like more active learning than just reading. I find that drawing pictures helps. (Especially if I use a tool like Libre Office draw, which lets me easily keep electronic copies.) Good luck, I hope you find an answer that works for you.