Watch these great videos
Here are a few tips that have helped me
- Paste in working code and have ChatGPT create unit tests for the code
- Ask ChatGPT to comment or explain code I paste in i.e. code I find online but can’t understand
- Ask for sample code. This works better if I brainstorm and/or write the code myself then check ChatGPT’s answer. I wrote code to find a nested object in an array, then I asked ChatGPT and learned how to better my code (return a boolean).
- Ask ChatGPT to rename variables. This has been hit or miss in terms of effectiveness. But I always gain ideas from the effective and ineffective renaming.
- Have ChatGPT remove comments. This is simple manual work that is done easily and perfectly by ChatGPT.
- Converting from React class to React hooks does not work that well but gave me ideas and helped me review the old school componentDidUpdate function.
- This extension is a nice way of supplementing Google searches https://chrome.google.com/webstore/detail/chatgpt-chrome-extension/cdjifpfganmhoojfclednjdnnpooaojb
- I like to ask ChatGPT for explanations (i.e. eli5 “explain like I am 5 years old”), examples, and sources.
Overall I am enjoying ChatGPT for brainstorming, searching, and getting explanations. It is not perfect by any means but it is a great tool in my toolbox.
I wrote these tips earlier: https://bryanttunbutr.wordpress.com/2016/04/04/how-to-apply-for-your-first-junior-developer-job/ and https://bryanttunbutr.wordpress.com/2015/08/12/how-to-build-an-amazing-resume-for-career-changers/
Here are some additional tips I have:
- Set your LinkedIn profile to open to new jobs and make this visible to everyone including recruiters
- Make your LinkedIn headline be something like Software Engineer Actively Seeking Opportunity
- Connect with technical recruiters every day. Reach the maximum every day. You must have at least 500 total connections. Add recruiters that have a headline of “We’re hiring.”
- Have your resume look nice with enough white space. Avoid typos, too many fonts, strange indentations and spacing. Have multiple people check and proofread. Make your hyperlinks blue to stand out.
- List technologies you used. If you completed a boot camp then list the technologies in the syllabus. Of course be prepared to answer questions and talk about the technologies as well as your role in the project
- Use live links. Recruiters are often non-technical so the live link demonstrates your coding ability. Make sure it looks good on mobile. Invest the money to not have the 30 second load time on Heroku.
- Have a section called “Programming Experience” in your resume.
- Always have an answer to, “What are you building now? What are you learning now?”
- Be proud and talk about any freelance work you have done for family and/or friends
- You can and should answer with “I don’t know.” However if you are asked about something similar you can answer that you have similar experience, i.e. “Do you have experience with the ASP.NET MVC framework?” “No but I do with Ruby on Rails which uses the MVC design pattern.”
- Remember that technology is important but the most important thing is solving a business problem. When describing a project try to think in terms of the business results/use cases, i.e. 1. increased profits, 2. decreased expenses, 3. improved user experience. If this is not possible, explain how your work can help business users i.e. “Created charts and graphs which makes data reports easy to understand and access.”
Here are a few communication tips that have benefited me:
- Ask 1. Who is my audience/listener? 2. What do I want him/her to think and/or feel? Based on these answers tailor my message/website/software etc.
- Be very meticulous about the requirements and goals of the software of system. This means asking many questions about the use cases or work flow.
- Use pen and paper to think, plan, brainstorm. Think on paper. Using just a pen and paper and jotting down 2-5 ideas can help me organize and plan better. The extreme version is something like the 20 Idea Method
Here are a few tips that have helped me on my journey
- Remember my purpose and long-term goal(s).
- Forget about my long-term purpose and goal(s). Instead focus on the next step, or even just doing a few seconds of the next step.
- Write, read, and paraphrase my to dos and goals regularly. I currently email myself my goals and to dos every day.
- When I feel overwhelmed thinking that there is too much to learn, that technology moves fast, I remind myself that is a great thing. The opposite is an industry or a job that never changes, which is mind-numbing and boring. Also new technology is constantly being created to solve problems better, faster, more easily (in theory 🙂
- When I watch an educational video and think to myself, “How can she/he possibly know all of this?” I remind myself, “It is great that she/he knows this and is teaching me. I can cut down on the learning curve by learning from this teacher.”
Here are some great resources for learning System Design:
To learn these I recommend: Learning by repetition and paraphrasing
I have been learning material by using a combination of repetition and my variation of The Feynman Technique.
My strategy is to repeat the material in chunks, i.e. section 1, then section 1 and 2, then sections 1 through 3, sections 1 through 4, etc.
I try to paraphrase every sentence. Sometimes it’s I just reverse the sentences, sometimes I change them into a question and answer, and sometimes I just use synonyms for a word or for multiple words in the sentence.
I think this has been working for me because of the sheer number of repetitions, but also because I am actively engaging with the material, and I am jamming the information into my working memory. Furthermore, I am exposing myself to the material in many different ways because I probably paraphrase things slight differently each time.
I think if I get comfortable with the earlier sections, I might start reviewing from the later sections. For instance, if there are 10 sections, I might review section 10, then section 9 through 10, then 8 through 10, etc.
I think I can certain material into long term memory by using flash card software. Also for things that just have to be memorized, I can create pictures, patterns, stories, rhymes, or use memory techniques such as The Link Method.
Here’s a great article on how setting goals can actually be counterproductive and demotivating: Forget About Setting Goals. Focus on This Instead.
My personal philosophy is to focus on the process by setting up a system and simply following it. I try to make my system consist of fun and right actions, so that way I can happily achieve towards my goals instead of achieving to be happy. I try to trust the process and see what happens, which lines up nicely with James Clear’s article 🙂