High school teacher. To build on the excellent advice from silenus and LHOD:
Do as much individual tutoring as you can, especially in the beginning. This isn’t to help the kids–though it will–it’s to help you come to see what’s in their head after they’ve been in your class. It will teach you the specific, weird little places where you are losing them, the bizarre things they are getting confused, basically the thousand different places things go wrong. Once you know this for your subject, you can head off a lot of that stuff at the pass.
Don’t blame the kids when a lesson doesn’t work. Often we have an idea that if we do X, the kids will learn A. B. and C, and then when they don’t, we blame them for not doing it right–especially when we spend hours developing X and it worked so perfectly with the theoretical kids in our minds. But you have to teach the kids in front of you, and if the lesson didn’t work, it’s not a good lesson. Don’t blame them–this is what burns out teachers.
Never, ever, ever agree to be Cheer sponsor, Student Council Sponsor, or Department chair.
Research mathematician. I have given this advice too. It was, more or less, how I got started.
Find an unsolved problem that looks interesting.
Learn as much about it, in particular previous attempts to solve it. Become the person on the planet who knows more about than anyone else. If someone wakes you in the middle of the night and asks you about the problem you can answer without thinking.
Solve it.
Needless to say #3 is the hardest, but that is what a research mathematician does. Oh yes,
Publish it.
One of my mentors, one of the top 20 mathematicians of the 20th century, said when you have solved a problem you have done half your job. Writing it up clearly and publishing is the other half. It should be the easier half, but for some people it isn’t.
If you enter the field because you want to save the bunnies or the whales or any other charismatic megafauna, find something else. During your training, you will deliberately kill both plants and animals. Sometimes in painful ways. Be passionate for life and the environment, but just remember that there’s no crying in biology (just kidding).
Learn statistics and GIS before you leave school. Learn them well enough so that you can confidently list them under “skills” on your resume or CV. Don’t allow yourself to think not being good at math is reason enough not to take stats. You have to learn stats to be a good scientist, period. If your school doesn’t offer a GIS class, find a place that does. Knowing these two things will make you very marketable. You will be uber-cool if you learn the two well enough to combine them.
Biologists are a dime a dozen now. You don’t have the luxury to study narrow, esoteric subjects. Make what you study as multi-disciplinary as you can. Interested in field ecology? Cool. Find a question that will allow you to mix field ecology with molecular biology, biochemistry, or even behavioral ecology to get to the solution. Why? Because not only will you learn more and be able to get published in a diverse set of journals, but you will increase your likelihood of getting a post-doc. You have to be flexible and can’t afford to be glued to your current area of interest for the rest of your life.
Extra tip: A Ph.D does not have to sentence you to a life in the ivory tower. Your soul will not die if you take a job in the private or public sphere. You may actually like working a 9-to-5 job. So don’t get it in your mind that if you don’t get a tenure-track position, you have nowhere to go or that you’re less-than.
Don’t obsess about being the best. A lot of young guys Have this compulsive need to be the best at something and prove it to everybody. I know, I was one of them once.Being able to speak expertly about every possible computer topic is impossible and a waste of time to try. You’ll be obnoxious, and boring and a one-up guy.
Learn the business. A lot of IT guys are proud that they know nothing about what the company they work for actually does, they just do computers. If you can get to the point where you are capable of being your own business analyst you will be a hero. Although it is changing a bit as computer literate people are in all level of management, there is nothing a senior director appreciates more than being able to just give a vague description, and you can mentally fill in all the “whys” and proactively give them all the answers to the questions they didn’t even know they had to ask yet .
Kind of a restatement of number one, but don’t be afraid to say “I just don’t know”
Stay relevant. Experiment with new technologies. In particular, open source projects offer a great, free way to play with the latest and greatest stuff. And if you make significant contributions back it can be a good thing to have on a resume.
Learn from those around you. Experience counts for so much in programming. Identify those among your coworkers who have a clue and do your best to benefit from their experience. Discuss your designs with your coworkers. If a bug has you stumped talk it over with somebody. Early in my career I was doing some prototype work on an OS’s virtual memory system. Every once in a while I’d get a crash because a pointer was NULL when it shouldn’t have been. My instinct the whole time was that somehow what I’d done at the VM layer was causing memory corruption. I spent weeks trying to track it down, and in the end the real bug was that there was a corner case I missed that meant that the pointer never got initialized. Maybe if I had solicited help from a more experienced coworker they could have identified my faulty assumption and gotten me to investigate it.
If you don’t have time to do it right, when will you have time to do it over? (John Wooden) Hacks, in my admittedly short experience, tend to perpetuate themselves. And the longer that a hack is in place, the harder it is to get rid of it. As time goes by, new functionality is needed and hacks get layered on top of hacks until you’re drowning in terrible code. Eventually technical debt will strange an organization, so treat it like it’s real debt and only take it on when it’s really worth it. There will always be pressure to get things done as quickly as possible. Do your best to beat back that pressure, or the day will most assuredly come when you truly do need something to be done quickly, but it’s no longer technically possible to do it. And for heaven’s sake, if you know that something is a hack don’t blithely accept that it’s the only way to do it. Investigate your options thoroughly before accepting that a hack must be done.
1 Don’t ever lie. You can accentuate, omit and hint, but don’t lie. It doesn’t work very well, lies would take a serious amount of effort to keep straight in the long run, and no job is worth compromising your integrity for.
2 Ask. It is amazing what people will give you or tell you just for asking in the right way. I’m talking millions under the right circumstances.
3 Whoever you deal with - the person <> their department <> their company/organization. Learn to figure out how that impacts what they want or need.
Software Developer in Pharmaceutical Industry
[ul]
[li]Learn as much as you can about the Pharma industry.[/li]
This means, get into the labs, talk to statisticians, hang out with biologists, see how high throughput screening robots work, understand the issues around clinical trial randomization and unblinding, use the applications the scientists use, get friendly chemists to chat about chemical structures, check out how the stockroom staff handles the stuff on the shelves … the list goes on.
This kind of knowledge is the best way to keep your job from being offshored. It is challenging to find offshore talent with lots of domain knowledge.
[li]Write your code so that someone else will be able to understand and support it five years from now.[/li]
Your code will likely be in production six or seven years from now, and you really will want to see stellar breadcrumbs you left for yourself the first time through (e.g. a comment saying “I already thought of clever hack XYZ and tried it, but it failed because of ABC. Don’t try it again”) And you do a disservice to the company if you try to protect your job by making the code unmaintainable by anyone else.
[li]Always have a smile on your face and a cheerful disposition.[/li]
Wouldn’t you always want to be known as that really friendly person who gets things done, who always seems to be happy? Come time to make a short list of folks for layoffs, perhaps your name won’t be on it.[/ul]
I am intrigued, as I’ve never heard of this. Can you give some examples–even ones you just make up? I generally am a good note taker (as evidenced by being able to understand my homework notes from years ago that I found an old hard drive.) Plus, I probably over-comment, so I’m not adverse to the extra work/time.
There are no raises. Ever. It is the least Christian, for profit ( not prophet), place.
So, my teenage workers I tell:
Get excellent grades and get into an excellent college. Lather rinse repeat.
Finish college.
If you don’t, you will be working wtih the unwashed, uneducated mouth breathing masses. AND ( this is CRITICAL so FUCKING PAY ATTENTION) nearly every day there will be poop issues in the bathroom. Sometimes, it won’t be in the bathroom. There will be corn in that poop. You will have to clean it up.
**lindsaybluth **- you got whooshed a bit. **Annie-Xmas **is stating your point: you can see someone’s true colors by how the treat folks at lower stations than theirs. And, to your point, folks like assistants can hold the keys to important stuff you would miss otherwise.
I get this: As a WordGrad, I started out of school at HP, running the email installation at Corporate. I helped the Leadership Team secretaries deal with this emerging tech (mid 1980’s) since it was newfangled to them. We made small talk while I helped. When the assistant to the CEO heard I was applying to business school, she got the then-CEO, John Young, to sign a letter of recommendation for me.
in fact, I then took this list I made and posted it around the studio. It’s also going in my orientation packet for new interns, along with some other great advice from here…including yours and Gukumatzoh’s
oh, and thanks Wordman! I’ve been slammed with studio work (both sides of the glass) and this grad program for a while…but things are easing up there and I’ve been able to get back here a bit. Gotta buncha new toys these days - including an 1976 MXR script logo compressor that’s looking for a new home…PM me if you’re interested, I don’t need it, would let it go cheap(ish)
BigT, you misunderstand. There is nothing wrong with overcommenting. But the reality is that a lot of other people’s code out there is not commented at all. Somehow we have to live with it.
With good enough memory long term notes are not all that critical. At least, I don’t go through my day saying, thank God for this and that note, even though sometimes it really helps.
The critical part is the short term notes, for reasons I mentioned in my previous posts - they help me keep track of where I am and where I am going, and they also help me understand how different parts of the codebase interrelate. If there are 15 lines of in 3 different files that have to do with feature X, it helps to put them all into a text file and give them a long, hard look. While running the whole thing in a debugger with a breakpoint in the hopes of understanding how X works helps a whole lot less - nay, I would say that such approach is just downright harmful.
Thanks. I am basically learning coding in my spare time (as I have a lot of it right now). I thought it would be good to start out with good habits.
I still am curious what long term notes have helped you, though. I’m considering writing down every time I learn something new, as I spend way too much time going back to the references I find online. Is that the sort of thing you mean?
You can learn everything you want about every diagnosis and every intervention, but remember you are talking about people, and you are never the expert about any particular person. You never know the answer, you only know what to try that might be helpful.
Boundaries have a purpose - to keep people safe. But they don’t need to be rigid and inflexible. Again, you’re working with people.
As a manager anywhere, admit to your mistakes. Everyone can see it was your mistake anyway; being hopelessly incompetent is one thing and can usually be fixed, being incompetent and a liar is just pathetic and can’t usually be fixed.
Job number two: therapist
Read every book by Irvin D Yalom, especially the open letter to therapists and their patients.
Always be ethical - this covers a lot, but mostly, don’t think you are above therapy yourself. You’re not providing therapy for others because you know all the answers, you’re not enlightened or living a consistently authentic life. Use your supervision to see your blind spots.
Have plenty of other things in your life, very different from therapy, mindless as well as mindful. I enjoy yoga because it helps me focus, and I enjoy cop shows because they help me switch off.
yes, that would be an example of long term notes. You could also save html pages on your machine, for use when they get taken down or you don’t have internet. But again, don’t count on this as a major improvement. Eventually people learn their frameworks well enough that they don’t need references anymore, and so will you. But figuring stuff out / writing code / troubleshooting existing code - this is what you should focus on mastering first and foremost. Everybody can do it in some way, obviously, but your job is to learn to do it fast and well.
BigT, another thing. If you have not yet gotten your feet really wet in database backed apps (preferably web based ones but you can start with desktop ones for simplicity), get started now. Don’t wait until tomorrow, because CRUD is what you will probably end up doing for the rest of your life. Or, at least for a good chunk of it, even if you end up with much more interesting things to do as well. So spend a lot more energy learning that than learning how to write OS emulators and other exciting and useless college projects of the sort.