Hacker News new | comments | show | ask | jobs | submit login
Any advice to a sw eng who can't remember/be expert on stuff
7 points by blindra 1840 days ago | hide | past | web | favorite | 19 comments
Hey guys!

I'll try to explain as clear as possible my situation. (and short) I am not sure what to expect. Any advice, or maybe a similar story would be great.

problem: 1. No matter how I read/practice on a tech subject (PL, fw), after couple of months I forget (Ex: I studied JS and then created several js apps (6-7) 4 months ago, now I don't remember anything.) 2. No matter how hard I study on something, I still can't get. (Ex: DP) (Ex: I am building web apps with rails for the last 2 years, and I can't tag myself as mid-rails eng. I still need to search API for even basic ActiveRecord queries or to define scope statements)

personal background: 1. I completed BS in CS 3 years ago. 2. I am building web apps since 2008. I never took a break. 4 full years. 3. I've worked on really big projects. (apps more than 3+ million user base or created several apps that utilizes ML algorithms) 4. I am 28, I don't see myself stupid but I started thinking my brain does not function as well as 2 years ago. 5. I try to follow new technologies, open source libraries, and news sites.(this is not my actual HN handler) (Currently I use backbone, coffeescript, rails stack. But again if you ask me some basic thing in backbone or coffeescript, probably I can't answer.) I created 4 apps using this tech stack.

It's been a very long post, but any help really appreciated. Thanks

I have a friend who is a Phd chemist. We were undergraduates together. We went to High School and Junior High together, too. When he was studying chemistry as a senior, I remember one of the pithy academic phrases he learned from a professor.

"Five hours in the lab will save you a whole hour in the library."

I'm an architect. I once had a job as a building plans examiner. I read the entire building code, front to back. Others have at times considered me "a building code expert" - I think of myself more or less equivalent to "the office computer guru" because they can install a new video card in a PC, but anyway...When I am designing, or someone asks me a building code question, I have learned over the years that the fastest most efficient way to proceed is to open up the code book and read what it actually says. I learned my memory is faulty and incomplete by paying the dumb tax.

Flailing around has it's place. It's part of the creative process. It's not a good method for executing an objective plan.

Good Luck.

"Five hours in the lab will save you a whole hour in the library." I am confused on this, you mean "a whole day" or am I missing something here?

What I do to cover my this stupid problem is I work a lot. I always repeat myself and it is of course frustrating. (for example I studied Dynamic programming 3 times from scratch, solved 20-30 problems each time, but after 1-2 months I completely forgot how to solve.)

I studied Basic in High School on TRS-80's in 1981. I bought the Amiga ROM kernel manuals a few years later. I've owned Turbo C++, basic compilers, downloaded VS express, Python for my Symbian Phone, Beans, JavaFx, and a whole lot more. I did the Code Academy Javascript class. I worked through some of project Euler in Javascript. I started working through Graham's Common Lisp a few months ago. I am hung up in Chapter Three. It's pretty obvious that I can't program for shit after thirty years.

So what? Sometimes I enjoy the challenge anyway.

Wow that's a lot of trying. What you are suggesting is basically I should keep trying to learn. Because even though I can't memorize important stuff or I have to re-learn important concepts, at the end I am able to write good code, and I solve problems.

I think it means that looking at the reference materials is quicker than just "throwing stuff at the wall and seeing what sticks", or at least, that's how I interpreted it. It's highlighting that the library trip is more efficient. I could be wrong though.

That's kinda strange to me, because I generally hear "practice over theory" quotes.

Reading a book isn't writing code. Referring to documentation is.

And despite not being writing code, reading a book may be part of developing software...just as downloading a compiler is.

I have found that I really only "remember" those aspects of my job that I currently use on a daily basis for some period of time. Learned material that I don't refresh by use in some relatively short period of time (days? weeks?) drifts away.

I may have "aha" moments when a problem comes up that requires previously learned, but relatively unused topics. This is often handy by itself "hmm, I think we can use language feature y for this and it will be easier . . . "

I have experimented with Anki (spaced repetition software system) and like it, but it requires an upfront investment of time along with the taste to know that something is worth the effort of memorizing.

I think it would be helpful to consider what is it you want/need to know without reference materials. Come up with a learning plan for that, and make some regular investment of time in those learning activities along with some Anki to help keep it fresh. Lastly, realize that you probably aren't going to turn into a machine at the keyboard when you are grokking full tech stacks.

Ruby/Rails/Javascript/Backbone/Coffeescript - this is a long list of tech that is both different and highly focused. There is no shame in having to refer back to ref materials to keep all of that straight.

As a personal anecdote, I recently was playing around with a new PL on some of the competitive programming sites. I was stunned to find that the vast majority of my basic algorithms knowledge had just evaporated. I shouldn't have been surprised, because frankly, I simply haven't had to do any algorithmic work in years and years. I can tell similar stories about any number of topics that I once would have listed with pride on a resume or CV - at this point, I would not include them at all other than as a dusty reference point that I used them long ago . . .

Great answer and suggestions, thank you! It's great to see that I am not alone on this. Except using Anki, everything in your posts apply to me.

Ruby/Rails/Javascript/Backbone/Coffeescript - I know I can't be expert and be very fluent all of these stuff, but since I am a full stack developer, when I apply for a job, they ask questions about these technologies and expect me to know these.

I have various previous projects with this stack, and I generally recall while developing new ones, but currently I am trying to get a fulltime job, and now this problem is much more obvious to me. (and kind of blocker too)

Try converting quick reference card into a deck for Anki. If an online quick reference is not available, the regular structure of language reference manuals and apis makes it straight-forward to create a card deck for the tool of your choice.

Thanks for the suggestion ppereira, I'll check that out. But the thing is I am ok with not remembering small things or api call, as I tried to give some examples, I am having bigger issues than that.

I have the same "problem". I have a terrible memory but can learn new things very fast. I solved my problem by having a technical blog and a metric ton of github projects online.

http://maxdemarzi.com (40 some technical posts) http://github.com/maxdemarzi (almost 100 public and private repos)

Makes it easy to recall how I did something or "re-learn" how to do it.

"I have a terrible memory but can learn new things very fast." Exactly!

I write technical blog posts as you do some time to time, and I have also github account. Besides that, I always keep opened my previous projects as references.

So thanks to these, I can quickly develop my new apps, but whenever I am in an interview, I can't develop most of programming questions, or I can't answer specific questions (even simple ones) about technologies I work daily basis like rails or js.

Are you chronically sleep deprived? If so, that's almost certainly a huge part of this problem. Even if you think you get enough sleep, you might try getting more.

I considered that too. I tried to find the best sleeping time and duration for me, so I tried 6hour sleep, 7 and 8 hours. I didn't notice any change, and I can say I generally have solid sleep.

Now I sleep around 7 hours, and I think I found my most productive hours.

It can take a surprisingly long time before the effects of sleep deprivation are fully overcome. I'd suggest a week of sleeping 8 solid hours before ruling that out.

Ok I'll give it another try starting next week. thank you

Every time I want to use a switch-case statement (C#), I have to look up how to do this. I have used C# since 2002.

So what is your strategy while writing new programs? Do you use google/past projects/API docs all the time just like me?

How did you survive interviews if you had any?

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | DMCA | Apply to YC | Contact