I’ve walked this path before, I think. It sorta feels like Deja Vu, except that instead of a fleeting feeling of Been Here Before, I really have. The first time I went through the academy it was still in beta, this time there will be more hours, and more content. More of everything, I imagine. So, here's to day 1, which is officially Monday.
I'd like to leave myself some thoughts, some things to remember as I go back through it. I learned a lot, but also went through periods of time where I hit some mental roadblocks and challenges, along with some emotional ones. The emotional ones probably hit the hardest, and so this time, armed with (hopefully) some stoicism I've learned along the way, I hope to navigate those challenges better. So, here goes: My tips to myself:
-1 Remember you won't remember. As you go through, you'll be doing tons of things. a lot of it your won't recall. It's completely normal. You'll wind up coming across these things, or going back to the reading to remember how to do things. Completely normal. Going back to look them up will help with recall later.-1 Remember you won't remember. As you go through, you'll be doing tons of things. a lot of it your won't recall. It's completely normal. You'll wind up coming across these things, or going back to the reading to remember how to do things. Completely normal. Going back to look them up will help with recall later.
-2 Type all the shit. One of the things developers do is rely too heavily on copy and pasting. Granted, in a job, you'll likely be doing a lot of it. At this point, the beginning, it is much better to type and retype the code as often as you can. Even if you're just trying something out. Typing will solidify your muscle memory, and especially in the early stages(and even in later ones) you'll need this.
-3 Try shit out. As you go through it, you'll wonder how something works. Well, make a project, try to make something happen. Use Iex shell, type stuff in there, see what happens. Don't be afraid to touch code, break it, type it in wrong, type it in wrong some more. Play with it. See what it does(and doesn't do). You'll be glad you did.
-4. Don't be afraid to say "I don't know", "I'm knee deep in shit" or "please go slower", "I'm not understanding that", "can you repeat that", or "Bullshit" at the beginning of a class recording. (ok, that last part you can leave out) The biggest issue for trying to learn something around other people is everyone is thinking the same thing, i.e. "I have no fucking clue" but then they don't say it and so there's dead silence. Someone has to have some balls. Pretend yours are the biggest in the group, and say the thing everyone is thinking.
-5 Pair programming dos and don'ts. Do be both the typer at times, and the talker. Get practice thinking through the problem, and trying to work it out. Talk out loud. Don't sit in your head trying to puzzle it out, your partner won't know what's happening. Also, they may have some insight to the issue that you won't know about because you aren't saying a damn thing. Also, don't be afraid once more to say "I don't know" or ask for help. You're learning, You're not expected to know everything.
-6 Don't let someone steal your learning. You're probably going to work with people with a huge variety of experience levels. If you're paired with someone that is just running along solving the problem, be vocal. Tell them to slow down. explain what they are doing and why. There's no shame in not knowing, and you're there to learn, not just solve the problems.
-7 The smallest step, first. Break everything down into its smallest step. How can you solve it quickly? Always be trying to break problems down into their tiniest bits. Also, remember to wrap things in IO.inspect() If you want to see what it's doing. This is a good way to troubleshoot issues.
-8 Write down what you learn. If you like to blog, do TIL:(Today I learned) posts. They can be as short as you like, just little posts that covered today’s topic. doesn't matter what it is. Writing about it is a type of teaching, and it will help you retain more of the info.
-9 Make friends. All the people in the cohort will be in the same boat. Everyone is going to go through this super stressful, and rewarding, Academy of Learning, and hopefully come out on the other side programmers ready to take their place in the Elixir world. Knowing people in the community will both help in terms of networking but also, there's comradery in having gone through something together as a group. In my experience, if you want to, you'll make friendships that will last.
-10 Be yourself/don't take everything so serious. You're here to learn, but learning doesn't have to be a Church of Learning. Relax. Also, listen to I am Machine by Three Days Grace before class every day. You'll thank me later.
Drew I am busting a gut laughing at number 10.
What a great song!!! - from their album Human 2014 - Billboard ranked the song at number 91 on their "Greatest of All Time Mainstream Rock Songs" list...
The article was good too... Wish I was at the end of the course - but I am at the beginning...
Probably need it around understanding maps - maybe sooner...