Career In Tech

Introduction
As mentioned in the previous blog post, I’ll start my career in the tech sector as a Data Scientist/Statistician. It takes years of hard-working and dedication to acquire the skills and build the network. It has been a long process since day 1 but does not have to be a lonely journey anymore.
I’ve started a new blog series called "Career In Tech" to share my learning and growth. My vision for the series is to focus on the soft side of Data Science. By "soft side," I mean soft skills like good communication, active learning, mentoring, career development, collaboration, team-building, conflict resolving, and other non-technical ingredients needed for career success in the data world. These soft skills are widely applicable to other folks working in the industry or whoever wants to make a career shift into the tech sector.
My goal is to share good lessons and grow together.
In the first post, I’ve listed four tips that have helped me grow as a Data Scientist (linked here). Here is a quick recap:
- Treating Reading As Breathing: read a lot and read widely;
- Adjacent Learning: developing new skills relevant to your primary obligations;
- Practice Makes Perfect: hands-on approach;
- Be Part of A Community: helping others and helping yourself.
In today’s post, let’s shift gears and tap into the question of how to learn to program iteratively and effectively. As noted, the entire Data Science field is moving quickly towards Soft Engineering and increasingly focusing on coding skills. As a result, it would be extremely difficult to get a DS job without a strong background in coding.
Coming from a non-traditional background, I was so fearful of the coding part in any interviews. In the remainder of the post, I will share my top programming tips that may be helpful to others.
General Learning Strategy
Before discussing the specific tips, it would be helpful to point out two necessary ingredients of active learning: self-reflection and teaching.
- Self-Reflection
Learning is incremental by nature and builds upon what we already know. Learning should not be drastically distant from our existing knowledge graph, which makes self-reflection increasingly important. After learning something new, we should reflect on the following items:
- What’s the main question that this paper/article aims to answer?
- Any new method proposed and why?
- Any practical constraints on the implementation side?
- Tradeoffs
- What are the contributions?
Reflecting on these questions can help us connect the dots and understand the incremental value.
As always, effective learning takes baby steps and should not leave a big cognitive gap, and self-reflection helps us process information better and faster.
- Teaching
After reflecting on what we have learned, the next step is to teach others with no prior exposure to the content. If we truly understand it, we can break the concept into multiple digestible modules and make it easier to understand.
Teaching takes place in different forms. It could be a tutorial, a technical blog, a LinkedIn post, a [YouTube](https://www.youtube.com/channel/UCBBu2nqs6iZPyNSgMjXUGPg) video, etc. I’ve been writing long-form technical blogs on Medium and shorter-form Data Science primers on LinkedIn for a while. In addition, I’m experimenting with YouTube videos (my Data Science Channel on YouTube), which provide a great supplementary channel to learning.
Without these two ingredients, my Data Science journey would have been more bumpy and challenging. Honestly, all of my aha moments come after extensive reflection and teaching, which is my biggest motivation to be active on multiple platforms.

Six Tips for Developing Effective Coding Skills
Tip 1: Find Your Tool and Stick with It
This is not a tip per se but certainly useful. A while ago, there was a debate about R VS Python among data scientists. As a frequent R user, I was reluctant to switch to Python at first. However, I quickly changed my mind after seeing what Python could do. It is such a versatile language that allows us to collaborate with other engineering colleagues smoothly.
After a short transition period, I became quite comfortable with coding in both languages. I used them for different purposes: R for causal inference-related questions and Python for engineering-heavy tasks.
My suggestion is to pick your tool and stay with it. There is no right or wrong answer here, but the real question is to find the most appropriate tool for your research question.
Tip 2: Start with Simple Questions
With an ego-inflated personality, I enjoy stepping out of my comfort zone and challenging myself with far-fetching goals. However, striving for something that is beyond my current reach brings more harm than benefits.
Trust me on this, as I learned it the hard way.
I used to burn myself with the most challenging programming questions on LeetCode, which brings me down mentally and hurts my confidence. They are simply too difficult to be useful. It has nothing to do with how hard I try as they are beyond my capability zone (please refer to the following diagram).
Back in time, I learned the most about programming from a simple for loop. So, go easy with yourself and start with simple questions.
Tip 3: Move Up and Challenge Yourself with More Challenging Questions

I’ve created the above diagram to differentiate three zones: comfort zone, study zone, and danger zone. The comfort zone refers to the areas we are familiar with, and it takes little effort for us to pull knowledge from the comfort zone. Study Zone refers to the areas we do not understand now but has built the foundation for learning it quickly. Finally, as for the danger zone, it is the area that stays beyond our current reach.
Here is a toy example. For aspiring Data Scientists who have some prior exposure to Statistics and Machine Learning, then probability theory and other fundamental concepts like Central Limit Theorem, Bootstrap, and Law of Large Numbers should be in their comfort zone. Deploying Machine Learning models in production should be in the study zone. Efficient computing and performance optimization should be in the danger zone.
It would be too ambitious to solve the optimization questions. In contrast, aspiring Data Scientists would benefit tremendously if they focus on the study zone, namely to learn how to deploy the model in production.
Pivoting back to the programming question. After turning new programming tricks into the comfort zone, we should level up and move into the study zone as quickly as possible.
Staying in the comfort zone by doing things that we are most familiar with won’t make us grow. Instead, we should step up and challenge ourselves with new things.
One caveat: do not over-step into the danger zone while reaching out, which is closely related to the previous points on consistent learning with no big knowledge gap.
Again, most learning takes place in the middle ground: the study zone.
Starting something new is challenging enough; we do not want to try something new and big simultaneously. As always, learning happens in a small dosage.
The main reason why the study zone is preferred is that it only takes a little effort to learn something; if we are in the danger zone, things do not work out for us, regardless of how hard we try.

Tip 4: Learn Data Structures and Algorithms
I find this tip insightful but often neglected. A common misunderstanding is that DSA falls into Soft Engineers’ toolkit but not Data Scientists,’ which is not true. Data Science is not a pure analytical field. Instead, it involves engineering obligations including model deployment, ETL, efficient computing and optimization, and knowledge of data infrastructure. All of these obligations ask for strong coding skills.
As an Inferential Data Scientist, a big chunk of my job is to understand the data pipeline and pull data efficiently. A solid understanding of DSA goes a long way, the same for the other tracks – Analytics and Algorithm – of Data Science.
If you are new to the area, here is a quick example of DSA.
Another perk of learning DSA is we can talk about the time and space complexities in an interview, which serves our purpose well.
Here are my two favorite books on DSA: Algorithms by grokking and Cracking the Coding Interview.
Tip 5: Use Different Approaches
By now, you should be in great shape and can solve common programming questions. To move to the next level, we can try to solve the same problem using different approaches while discussing the tradeoffs (e.g., time complexity, infrastructure requirements, pros and cons, etc.).
- Why does Algorithm A perform better than the others?
- Why is Dictionary the recommended data type for key-value pairs?
- …
Here is a quick example.
Tip 6: A Growth Mindset
It’s OK to start low, and it’s OK even if you cannot solve any coding questions in interviews. As it happened to me, I could not answer any Python-related questions at the very beginning. But after consistent learning, I’m a (self-claimed) programming master now.
Remember, there is a learning curve for everyone.
If you are in an interview loop, try to learn something new from each failure. Neither where you started nor your current level of coding sophistication is that important. What really matters is the ability to recognize the gap and be an incremental learner: start low, keep the momentum going, and practice daily.
_If you find my post useful and want to learn more about my other content, plz check out the entire content repository here: https://linktr.ee/leihua_ye._
Takeaways
As a new grad with limited previous working experience in the industry, taking the first step is always difficult, to say the least. When I started, I had no background in Python and SQL, didn’t understand the application side of the data, and had zero understanding of DSA. It’s a pretty low starting point.
However, by consistent learning, I’m able to fill the gaps and turn into an efficient programmer. The secret to active learning is to be consistent, incremental, and iterative. No success happens overnight; instead, it takes a lot of effort.
Let’s recap the 6 tips that may be helpful to you as well.
Tip 1: Find Your Tool and Stick with It
Tip 2: Start with Simple Questions
Tip 3: Move to More Challenging Questions Timely
Tip 4: Learn Data Structures and Algorithms
Tip 5: Use Different Approaches
Tip 6: A Growth Mindset and You Can Do It
Enjoy reading this one?
Please find me on LinkedIn and Youtube.
Also, check my other posts on Artificial Intelligence and Machine Learning.