I was reading a blog from a few days ago:
I ended up wanting to write about this first quote and why it is technically awesome, but as I continue reading, I find myself logging the meta, abstract, intangible / non-technical pieces of advice.
Below are the handful I've resonated with and some notes on them.
For example, Python have the yield statement, which will stop the execution of the current function and return the value immediately, yielding a new value only when the function is called again. If you chain functions that keep yielding results, you won't need as much memory as functions that keep returning lists.
I'll get back to this one, but anything that screams "efficiency" is exciting to me.
You know what's one of the worst function names ever? sleep().
Sleep for how long? It is seconds or milliseconds?
Be explicit with what you use; sleepForSecs and sleepForMs are not perfect, but are better than sleep.
True. Very good point.
When it's time to stop, it's time to stop
Learn when you can't code anymore. Learn when you can't process things anymore. Don't push beyond that, it will just make things worse in the future.
I tried to keep coding once when I had a migraine (not strong, but not mild). Next day, when I was better, I had to rewrite most of the stuff I did, 'cause it was all shit.
You ever code on no-sleep? Ever have a project due the next day and you waited until the night-before to start working on it?
Sometimes, you'll have to say no: No, I can't do it; no, it can't be made in this time; no, I don't feel capable of doing this; no, I don't feel comfortable writing this.
Once I had to say to our CTO: "Ok, I'll do it, but I want to note that I don't agree with what we are doing." In the end, the app was barred exactly because the thing we were doing.
I got into iOS Development, despite my dislike of Apple, to escape living with my toxic family. In the end, I don't do iOS dev anymore, and I'm still stuck with my toxic family. You're going to want to kill yourself either way, don't make it more painful by sacrificing your ethics just for financial gain.
On the plus side, I got a lot of real-world experience, so there's that.
Don't tell "It's done" when it's not
You are tired of running the same thing over and over again. You kinda remember that something weird may happen, but because you're tired, you tell everyone that "It's finished".
Don't do that.
Someone will try that weird case on the first run and immediately tell you that it is not working.
In high school, one of my CS teachers told us about a program she wrote for Sears. It was some point of sale system, and she, naturally, wrote it to only accept numbers and decimals. The first person to use the program tried typing in "One hundred dollars" instead of "$100" and immediately broke her program.
Never assume the user is going to conform to your beliefs or expectations.
You'll learn about yourself the hard way
We get frustrated with code that doesn't compile. We get angry with customers asking things back and forth.
And we lash out on other when that happens.
And that will get you in trouble.
I am a very emotional person at times. I don't like engaging with people for this reason: people can be put-off by how extreme I feel things. Growing up, the excitement and joy of computing was a huge driving force. I may have gravitated to tutoring for this reason, as it reminds me of that time. However, I make money doing what I do, and now I have a financial and existential motive for it. There has been a lot of pain at the tools I have used in the past, which is why if I am going to end up on a project that might be emotionally-taxing, I don't want that tax to be paid by the tools I use.
The tools you use should bring you joy. I love Python. I love vim and the bash terminal. They bring me joy.
You'll get annoyed, pissed, frustrated, and angry. You'll get you in trouble. You'll see people getting in trouble because of this kind of stuff.
You must learn about it. Don't ignore it.
One thing I learnt the hard way was that I get really aggressive when I'm frustrated. Now, when I notice I start to get frustrated, I ask help from someone else. It's really therapeutic to see that someone else also struggles with your problem, and that's not just you.
This man's posts are causing me to reflect on myself, and I hope the same is true for you reading this.
We have a expression here: "The world of something is a small egg", which means that you don't live in a large world; the world is small.
I.T. world is really small.
The person you work with today will find you again in 15 years after you both changed 3 or 4 jobs already.
And you'll meet a lot of other I.T. people in the way.
And they will talk about themselves.
And whatever you say/do will be talked around, which one person will hear and pass along another company, which will pass along other people, which will pass the story along to another company and, suddenly, when you realized, nobody will hire you locally 'cause everybody knows that time when you fucked up a project or punched a colleague in the face.
I've had a hard time getting into corporations for one reason or another. I did a stint with one company in Jacksonville and another in San Antonio, and I have interviewed with big-names like Amazon, Facebook, and Google.
But, nobody tells you why they won't hire you, even if you are good at solving problems. This is one of the biggest sources of depression and anxiety for me. If I did anything "wrong" at a previous job, I don't know about it. I can be pretty sharp and disruptive at times. If I'm not engaged, or not happy, or not really feeling "that life", I am fairly vocal about it usually. People seem not to dig it when you're real and authentic. People love fakers and being fake.
That's the vibe that I get.
Blogging about your stupid solution is still better than being quiet
... but turn off the comments
One thing about posting your stupid solution is that it will attract people who just want to mess with you. "This is stupid", for example. "Your dumb" may someone say, unaware of who's actually dumb.
True. Fuck the haters! Haters gonna hate while real ones levitate!
Richard Feymann, famous physicist, kept a notebook with the title "Things I Don't Know".
When you find something that seems cool and you'd like to know more, create a file/note/whatever with it in the title. Then make notes about what you find/figure out.
Feynman was a hero to many when I was on Math Team in high school. I still suck at physics, but I like that Feynman stands next to one of my own heroes, Carl Sagan.
A still more glorious dawn awaits
Of what nature? I do not know.
writes that down