Are you trying to figure out how to transition into tech, and you're not sure where to start? This page is for you!
Tips & Resources
Everyone learns differently, but if you are wondering on how to get into the tech side of things, I believe it's valuable to share with you insights from my experience and resources that can help you grow.
If you think insight on this page is helpful, share it with someone you care about!
Tips & Resources Table of Contents
Note from Jacky
I don't think of myself as a success story. I'm a growth story. Growth is something we all can do, and it's something we all can help each other do.
Achievements are nice, but they're temporary. Growth requires being willing to admit that you're not that great, and if you can accept that, then you can start focusing on things that matter.
One of my personal philosophies is that change is constant, so I want to make sure my growth is constant, too.
It's important to have the self awareness and courage to do frequent "check ins" with yourself to check if you're still growing in the way you'd like. And if you're not, don't worry! Because you have the power to plot your course.
Life is fluid. Be open to exploring your curiosities and get over the initial fear of starting.
You can do eet!
Tips (more like advice?)
1. Free trials of lots of platforms.
Pick 1 language and double down. Google for projects with that language. Pick 1 to learn. Google for which platforms are good for projects in that language. Most platforms are either free or have a free version to use for learning.
2. The real deal with work onboarding.
If you have a mentor at work who has time to mentor you, that's awesome! But chances are, no one has time to truly onboard you in a way that's needed. Everyone needs somebody who can join, volunteer to take on a project, and figure it out.
The sooner you start diving in, the easier it will be to ask others questions on what you realize you need help with. This creates tangible, "doable" questions, so it makes it easier on others who have the kind of legacy knowledge you need to share what they know.
3. Inventory your translational skills.
Think about what you can do and what you want to do. Understand that it's okay if there's a difference. For example, now I'm offering skills I've learned as a Data Engineer to provide insight as a consultant on projects, and that's my way of making use of what I've learned. But my real skills that I want to translate into my next job are more project management-oriented. There are lots of jobs--don't be afraid to ask yourself if the tasks of the work themselves are how you want to live your life.
4. Know what you bring to the table.
Set aside ego, but be proud of what life path you bring, because you have inherent value in simply being yourself. People need reminders that there are other opinions and views out there. Have you ever come across a commercial and thought, "Who gave that the green light?!" If they had more diversity in that room pitching the idea, or if different perspectives were shared, for sure they would have caught the problematic components before spending tons of money on something meant for a wider audience.
5. Switch your mindset into a "learn it all" attitude and TAKE GOOD NOTES.
For the love of everything, I cannot emphasize the under-appreciated-missed-opportunity importance of documentation! Even if just for yourself, take good notes on everything, because you never know how much it can help you later when you need to figure out how to do something. If you begin to work in documentation as a regular part of your workflow (ie, you cushion time for it), you are doing yourself a huge favor. I call this, "helping me help my future self."
There were so many times someone asked if I knew x, y, z about something that happened months ago. I'm like, "Hmm...I vaguely remember, but so much has happened since then that I want to see if I wrote anything down about it." Then, I'll search my notes and come across a step-by-step or process shift that explains what the client is seeing/why the data changed/if it introduced a bug/if we can replicate a project that someone else used to manage before they left, etc.
Sooo many times, I found myself celebrating, "Yess!! Thank you past me! You helped future me!"
It can be surprising how quickly we forget things we knew, and not being afraid to "learn it all" (even if you are re-learning it), combined with your epic notes, will help you continue growing, building, and improving on your work!
There are so many free resources to help you get started.
Other than coding my own websites and emails (some early ones are cringeworthy, but they were great lessons in design), below are all free resources I've used to test the waters of career engineering before I formally joined tech startups.
Hope you find them helpful!
Business Intelligence and Data Visualizations
AKA: Getting comfortable with Big Data
Why it's useful:
I got comfortable using Tableau, which helped greatly when I started a job that relied on Looker as part of our tech stack (Looker is a Tableau competitor). If Tableau and Looker sound foreign to you, I highly recommend exploring one of them to become familiar with what goes into creating data dashboards using big data.
Tableau is so you can start using huge, public datasets and explore creating your own data visualizations.
If you're not a student or teacher, no worries! There's also a public version of Tableau, which is always free.
Hadoop is a way of connecting and processing the large sets of data you want to use in Tableau.
IBM offers free courses to help with learning. Back in 2016, I used IBM's Big Data University to learn Hadoop on my own. Now, Big Data University is known as Cognitive Class. It looks like they've expanded their offerings.
While I was at the med school, I would do some Codecademy lessons to pass the time as a study break (somewhere between eating Philly cheesesteaks and crying from K-drama marathons post-exam, waiting for my cells to culture, or if I couldn't sleep). I couldn't dedicate a lot of energy outside of med school coursework to coding projects, but I still wanted to stay sharp and exercise dormant skills I had, so I started picking up Codecademy lessons to keep myself current.
Actually, having an account became helpful years later when I needed to pick up Ruby at work. They have since expanded their offerings, too! Try it out to see what I mean!
Love, love, looooooove Khan Academy videos!
It's amazing how much Khan Academy has grown! I wish I had something like this when I was in University! I always recommend Khan Academy for people to learn SQL (they also have some great lessons on fluid dynamics and any other topic you could need, if you want to check them out!). It's buildable, short lessons that are hands on so you get used to writing queries.
Of course, there's nothing like having to write clever queries against a database filled with dirty data (I call access to this a GOLDMINE), but if you are looking to start somewhere, you can't go wrong with Khan Academy. Very low risk, high reward.
If the application period is open, consider applying! I enjoy the style and pace of Udacity--it's really good for practicing on real projects and taking/repeating lessons at your own pace.
There are tons of courses in Udacity on a various specialties, and a lot of them let you dive in for free so you can start learning.
Download the free version to put your python code to the test! Just jump in and start coding your own app. There are so many tutorials out there nowadays that you really can't go wrong picking one to get started.
RStudio is a great (free!) platform to let you use R for statistical computing.
Princeton has a great intro pdf so you can see what to expect. There are so many tutorials out there, don't be shy Googling for them!
Data scientists are familiar with using Jupyter to share their work. Think of it like this: instead of coding in a silo (isolated and away from everyone else), you do your work in a Jupyter notebook. In here, you can run each piece of your code to troubleshoot and analyze data, including visualizations. Then, you can share this entire notebook with a colleague, and you can get feedback in real-time while working together. Sharing notebooks become very helpful when you want to give someone else an idea of what they could do/what you've tried on different problem sets.
The easiest way is to get it as part of the Anaconda package. I used Spyder IDE ("Integrated Development Environment") for python coding before I was aware of PyCharm. Spyder is good for data analysis, it's very lightweight and fast. PyCharm is better for full software development.
Actually, if you are just getting started and unsure which version of python you're using, which platforms are good for what, etc.--try installing Anaconda. It's kind of an all-in-one platform.
When you install it and open up the Anaconda Navigator, you can launch programs like Jupyter (web-based, interactive computing notebook), Spyder (Python IDE), RStudio, and others.
Before I used PyCharm to create a flask app with jinja2, I used Spyder via Anaconda to test bits of my Python code to see if it even worked. Eventually, I discovered PyCharm for my Python needs, but I'll still occasionally launch Anaconda if I feel like it.
I tend to use Chrome by default, but if I'm web developing something and want to test/debug it, I use Firefox Developer to see what I'm working it. They also have super helpful guides for reference:
Also helpful: Chrome DevTools
Note: I have a Mac, so iTerm2 is for macOS.
Terminal is the basic command line tool your computer already has. If you really feel fancy, try iTerm2. They both function similarly, but iTerm2 is more customizable. It's really up to you--try both and see what you prefer, or pick one and stick with it--not a big deal either way.
Coding foundational references to keep on hand
AMAZING resource, available for free online. Answers a lot of questions you may have and really good at explaining the process.
Not free, but this was a great reference to keep on hand because you never know if it could help. Getting back to basics is always nice, foundational knowledge is important. I might get a commission if you decide to buy using the link, and I actually do have this book, so I'm including it!
It's never too late to learn a few go-to commands you can execute in your command line (ie, Terminal or iTerm2) to get your computer to do things you want it to do.
For example, if I'm in a deep workflow and have a LOT of files to manipulate/move/open, I'll usually perform the actions via command line instead of manually opening the files.
Some places to learn about shell scripting:
Udacity Command Line Basics
There are many different ways to make a data pipeline.
For reference, we had a data pipeline kind of like this:
Client delivers their files into an S3 (AWS) bucket. This gets integrated with MongoDB, so I'd use MongoDB to check out what my raw client data looks like.
We'd ETL (Extract-Transform-Load) this data in to our data warehouse, and eventually, it would get stored into our PostgreSQL database, which sat next to our Amazon Redshift Internal database --> Amazon Redshift external database (which fueled our Looker dashboards).
We would perform actions based on data reflected in Looker dashboards, and the results of these actions would flow back to provide updates as new PostgreSQL records. There are some custom things we'd do to average the differences reflected in the PostgreSQL database, but the main idea is that the data that ended up in PostgreSQL was closer to the data the client would be delivered in return (via S3 file delivery from us to them).
So now, with this kind of data architecture in mind, here are the following data engineering resources you can acquaint yourself with!
Mongo is a NoSQL database. What is a common use case for it? I'd use MongoDB to check out what my raw client data looks like.
w3schools has good documentation on how to mongo.
Hellooooo, GCP is encouraging you to learn by giving always free products + $300 credit to spend on Google products during your first year. There are so many tutorial videos for different GCP use cases that it's another low risk, high reward situation if you can successfully build something.
I think this is a referral link to getting 50% off of a Coursera course, if you end up enrolling. They have specialist courses using Google Cloud, like Data Engineering where you can get the certificate at the end. They also have a free trial version.
If you're feeling fancy, sign up for GSuite to get yourself a business email and run your operations (video conferences/meetings, etc.) professionally. This is also a referral link, and I might get a commission if you decide to stay on after the free trial (14 days). I'm including it because I'm currently using GSuite to force myself to double down on DWS so I can integrate it with everything I'm building for free on GCP. Since I am finding it helpful, I might as well share it in case you decide to do something similar!
Necessary Collaboration Platforms
Udacity has a great intro course for free!
You don't need to necessarily make an account, but chances are, if you Google a coding question, you're going to end up here, anyway. The main advice I can give about using Stack Overflow is to remember that everyone is sharing their opinion on how you can approach a problem. There are so many ways to solve a problem.
People are suuuper helpful giving suggestions on what you could try, but you have to know what components of your code are relevant for editing. Rarely is someone going to tell you exactly how to solve your problem, but they will help you with enough info to hope that you figure it out.
User Journeys, Marketing Funnels, Email Marketing
I mean, you can't go wrong signing up for HubSpot Academy! It's free, and the way they break up the lessons makes it doable when you have a lot going on. You can do a lesson to refresh yourself or even do a whole certification.
If you're sending less than 10,000 emails/month, MailChimp is free! They have an extensive library for guides and tutorials, and it's a great resource for when you want to get started building email funnels and automatic campaigns, A/B testing, etc.
There are so many resources in the email developer community. Since I was already familiar with HTML/CSS/Responsive Design, I did not use these tutorials, but I found them in case they might help someone who is just getting started!
Tutorial on how to code a responsive email from scratch.
Tutorial on building interactive emails.
How about joining me with a ton of other #emailgeeks in our Slack channel?!
WYSIWYG (What You See Is What You Get) HTML/CSS Editor for Email Template Testing. Helpful for trying out a new email template: If you like what you see, copy the code and paste it into your MailChimp template to use!
The first startup I worked at heavily used Asana, so it's definitely effective for team collaborations and status updates. Orgs I volunteer with also use Asana, so if you prefer a clean interface or want a digital post-it board version of your creative brain dumps, Asana might be for you!
Asana is great for managing strict timelines and product launches. The clean interface and mobile app keep you focused on the actual tasks you're assigned, so you don't get distracted by details of team projects that are not your direct responsibility.
I find that I enjoy looking at my tasks in Asana in "board view" when I'm on a laptop, and in "list view" when I'm using the app on my phone. It's nice to have control over the preferred way to view it.
It's also helpful to see the calendar view in the app, so you can see if you have something that needs to be delivered in a couple days.
You can plan how to break up a big goal into smaller tasks, divvy it up fairly, understand how crucial each task is for weekly results or de-prioritize tasks as necessary, and keep each other updated by seeing what everyone is assigned under todo, doing, and done statuses. And you don't have to buy loads of post-its or hold redundant meetings!
Super helpful for flexible work-life/working from home/remote team work balance.
Overall, Asana is a helpful, low-friction, and free project management tool that helps introduce teams to the comfortability of managing and running project "Sprints", so all orgs have the ability to operate like a lean startup.
Asana is free for up to 15 users in your org!
For personal projects, I find myself using Trello. For projects where I'm working with a team, I lean towards Asana and JIRA (detailed below).
Trello is like a combination of a mood board with an engineering sprint board, and that's probably why I gravitate the most to it for projects where I am a team of one. I have different Trello boards for different purposes, and each one has a different background image to keep me focused in the project brand/vibe.
It's good for content management-based projects because they have free templates.
You can edit the privacy of boards. For example, I used Trello to organize a public board to communicate and share with my cohort progress on our Google Udacity Scholars Bay Area-wide events with everyone.
You can see an example of that public board here.
Since that board, they've added more features, like templates for OKRs (Objective-Key-Results), Design Sprints, Decision Tracking, 90 Day Plans, Onboarding, HR Hiring, and more. Join and try it out with one of their templates!
If you decide to join Trello, it's free! Sign up with my link so I can get credit. They have something called Trello gold (did not realize that was a thing), and I think it essentially gives me credit to customize my boards further.
I had no idea there's a free version available. It's free if you have up to 10 users!
I am mentioning JIRA here to help people become familiar with the platform since so many orgs use it for their engineering sprints.
JIRA works like this: people make "tickets" for issues. Someone determines the priority and scope of work required for these tickets. Someone starts work on the ticket and people can track the status of this ticket being complete.
And then Confluence is a place where people can document knowledge to share with everyone else--like an overview of the pipeline architecture, common troubleshooting steps, onboarding materials, or even project post mortems.
Project Wiki pages are always helpful for sharing legacy knowledge with teams.
BTW, in looking to see if Atlassian had free versions of these products, I found out Trello was acquired by Atlassian in 2017! So JIRA-Trello integrations are always possible, but I believe you would need to upgrade for a sort of "power up" in order to get that Trello feature.
Don't forget to bookmark this page or share it with someone who might find it useful!
Click to view short list of things I began working with regularly once I started working in tech (gives you an idea of what to expect and how you can set yourself up for success)
Once I started working in tech, I became accustomed to using platforms on this short list. There's always a learning curve with anything, but it didn't seem so bad when you already gave yourself an introduction to a lot of similar resources before starting. I wouldn't call myself an expert in everything on this list, but I'm definitely comfortable after using them regularly at work.
Hopefully, you can see how all of the above suggested resources helped me build towards my tech career...and I hope this helps you get an idea of what to expect!
- JIRA for project management and cross-team collaboration
- GSuite* for company communication, then post-acquisition, we switched to SharePoint
- Slack for daily chats and updates, WFH (Work From Home) statuses, integration notifications, etc.
- Docker as deployment tool
- APIs for connecting our whole engineering ecosystem together
- GitHub version control
- Looker dashboards
- Amazon Redshift database (internal and external, public)
- PostgreSQL, MongoDB for ETL'd data in the pipeline before it becomes accessible to the larger organization via Redshift
- DataBricks to share and replicate data science/data engineering/data analysis work for different clients.
- QA/testing on stage and production databases
- Lots of command line
- Stepping through debugger in RubyMine, PyCharm
- DataGrip, PopSQL
- Adobe Illustrator for vector mockups (for client approval before coding changes in text editor of choice...which for me, became Atom)
If it has a *, it means I might get some sort of referral credit if you use the link to sign up. Maybe!