Disclosure: This post may contain affiliate links. Please read my disclosure for more info.
It’s been almost 5 months since I first discovered the world of computer programming.
I can only describe those 5 months with two words: Time flies!
It started with me forcing myself to learn Python to get a new job and progressed to me marveling at the thrill of coding.
Learning, especially learning a marketable skill, is always a good investment.
However, when you decide to invest your time and effort in something, your life and your relationships with other people will probably change as well.
And to Mr. FAF and me, programming has taken us on a new journey where we discover ourselves and each other.
Today I will tell you all the good, the bad, and the ugly of what has happened in our lives ever since I started learning how to program five months ago.
Related: Considering A Career Change To Programming – How It All Happened
The good
If you ever told me before Feb 9 of this year that Mr. FAF would be my mentor and biggest supporter when it comes to programming, I would probably laugh and think that you’re joking.
I have always envied Mr. FAF for having a well coveted job at a big tech company making a six-figure salary and amassing a bunch of perks that I can only dream of.
I told him that and even wrote about it on the blog. But Mr. FAF just brushed it off, saying he’s a nobody at his company.
To me, programming was something I wanted to do for a living but thought that it was way out of my realm. Whenever I asked Mr. FAF about his work or explain something tech-related to me, he would get uncomfortable and tell me that I didn’t need to know.
Maybe he was right, what do I know? I just accepted the fact that we could just never talk about what he does at work or anything programming-related. I just didn’t need to know.
All of that has changed.
Five months ago, Mr. FAF encouraged me to consider changing my career to programming. I first thought he was joking and got a bit upset at him (how dare him make fun of me like that?). But after realizing that he was serious, I was touched and motivated to try something new, something I thought was just too hard for me.
From that point on, Mr. FAF and I have spent countless late nights and weekends together going over programming concepts and exercises. On Friday nights, instead of going out to eat or strolling around the mall, we just sit in front of a white board at home where Mr. FAF patiently and passionately explains to me what I don’t understand.
And strangely enough, all of this studying has drawn us closer together. I am deeply moved by Mr. FAF’s interest in helping me improve myself and my career. Sometimes I think Mr. FAF might be tired and ask if he wants to watch a movie or go out instead.
But he decidedly tells me he wants to help me progress faster, so we should just stay at home and study. We usually study together when our kids are asleep or when our baby is taking a nap and our son is practicing writing the alphabet letters. When they are awake, we take them out to the mall or go grocery shopping.
Now when I ask Mr. FAF about his work, instead of avoiding my question like before, he will explain to me what he is trying to do. He told me that if I try hard enough, one day I can do what he is doing.
We started talking more about different programming languages, computer science concepts, and programming career paths every single day.
Sometimes I wonder what we used to talk about before I started learning how to code. I feel like Mr. FAF and I are speaking the same language instead of us living in two different worlds like before.
I will listen attentively when he talks about his work, and he will do the same when I talk about my concerns or challenges of programming. In other words, our worlds seem to have collided in a strangely pleasant way.
Related: What’s It Like Being Married To A Software Engineer?
The bad

However, things have not been all roses and chocolate. Mr. FAF and I have gotten into multiple fights when we’re studying together.
Sometimes I can’t help but feel like he explains things to me in a condescending tone. Sometimes he would yell at me if I don’t understand something right away.
One time, he was bringing up all these math concepts that I had learned from high school 15 years ago.
When I was trying to recall what they were, he dropped the bomb, “You are so good at math.” And he said it in such a sarcastic and condescending way that it infuriated me. I snapped back, “You think you are good, but you’re not that great either.”
And the studying stopped that day.
Another time, I asked him what I thought was a pretty simple and straightforward question about arrays. Then he started bringing up what I thought was the history of computer science over the past decades.
Being an impatient person, I urged him to hurry up, and Mr. FAF got upset. Then he started yelling at me, “You just want to learn easy things. You need to be patient and understand the basic concepts of computer science. Do you know why there’s just a small percentage of people who excel at programming and get six-figure salaries? It’s because they take the time to learn and understand these difficult concepts. If you want something quick and easy, just stay at your current job.”
I thought that was pretty hurtful. I must have cried a couple of times after he yelled at me. I felt offended and stupid. Maybe I’m just not smart enough. What am I doing thinking I can be a programmer? Am I just wasting my time? Maybe I should stop and focus on my current career and take care of the kids instead of spending all this time learning how to code.
And I told Mr. FAF I was going to quit. Mr. FAF got scared and begged me to change my mind. He told me that he would never yell at me again and got down on his knees to ask me to forgive him (literally). He apologized and admitted that he had an attitude problem.
So far, the yelling has stopped, and he has definitely become more patient when I don’t understand something. I have also trained myself to be more patient when he explains something.
What Mr. FAF said was hurtful, but I think he made a good point. It was a tough pill to swallow, but it was needed. If programming were easy, everyone would be a programmer making six figures already. It’s not an easy career path, and I need to take the time to learn and understand it.
Back then, I just mentioned quitting out of frustration, but it seemed to work in my favor. And of course, I didn’t quit.
Related: What If Everything I Ever Wanted Became A Reality
The ugly
All of that yelling and crying happened. It was bad, but it’s not as frustrating as what I’m going to talk about. I hope that no one will get offended by what I’m going to mention below.
What I wrote in this post is purely based on Mr. FAF’s opinion and my limited online research. If you disagree, I really want to get your feedback. I don’t mean to put anyone down, and I hope no one will feel that way.
I first started to program on Codecademy using Python. However, as a newbie coder, I was eager to learn and turn to the internet for more guidance and information. I then explored the world of coding with so many career tracks: front-end developer, back-end developer, full stack developer, etc.
To me, my ultimate goal was to become a developer in the shortest time possible. I didn’t care if I could be a backend or frontend developer. I just wanted to have the word “developer” in my job title.
I found FreeCodeCamp and the Web Development path on Codecademy where people use HTML, CSS, and JavaScript heavily to build websites and apps. I thought it was cool to be able to see what you are building when you are just starting out.
I also found a myriad of articles about people using FreeCodeCamp and other resources to build a portfolio for job applications and got a developer job within a year. I set a goal to be able to get a developer job before I potentially get laid off at the end of 2019, so those stories sound super cool and inspiring to me.
I took the Computer Science path on Codecademy, practiced LeetCode problems, and learned more Python from other resources, but it seemed to me that Python couldn’t really help me build cool websites and apps like what HTML, CSS, and JavaScript could.
I told Mr. FAF I wanted to focus on web development and about those inspiring stories I found on the internet. I also told him about those coding boot camps that churn out developers in a matter of months, and that I would continue to learn JavaScript instead of Python.
Contrary to my expectations, Mr. FAF wasn’t so thrilled. Actually, he looked deeply disappointed and got pretty upset seeing me so excited. He told me to focus on data structures and algorithms since they are the foundation of computer science.
He didn’t want me to spend time building pretty websites or fun apps. He wanted me to take more courses on data structures and algorithms and practice LeetCode problems. He also said there’s no shortcut to becoming a good programmer, and that he doesn’t believe in those coding boot camps.
I told him that I had gone to conferences and talked to multiple female developers who graduated from such boot camps. They now work as developers, and they said data structures and algorithms aren’t that important in their daily work. Our conversation went something like this:
Mr. FAF: You should focus on data structures and algorithms and becoming a backend developer. Let other people do the web development.
Me: Why? Other people are web developers. They like it and get paid well.
Mr. FAF: Technologies for frontend development change constantly every year, so it’s a hassle trying to catch up. Plus, backend developers get paid more. If you spend the time to learn, why not focus on what is more rewarding?
(According to Glassdoor, the average salary for web developers is $75,000/year while that for backend developers is $117,284/year.)
Me: But data structures and algorithms are hard. And it’s gonna take me forever to master those, let alone doing technical interviews.
Mr. FAF: It’s hard, but it’s more rewarding. The average salary for web developers is not much higher than your current salary, so why bother spending all that time learning it?
Me: Do you use algorithms in your daily work?
Mr. FAF: Not really. But the smart ones on my team do.
In a way, I thought Mr. FAF was acting like a demanding parent who kept telling me, “You can do whatever you are passionate about as long as you do what I say.” I felt like he wasn’t listening to me and just kept telling me what to do.
A Plan
After various conversations (arguments?) like the one above, I started to think that Mr. FAF was right. At the end of the day, now matter how much I wanted to argue with Mr. FAF, it’s just a fact that data structures and algorithms are the backbone of computer science.
Technologies, libraries, and languages change every day, but the fundamentals of programming will always stay the same.

There’s a reason why those big tech companies got so big and successful with their technology.
They want software engineers who are good at what they do, and one way of testing that is through those notoriously difficult technical interviews.
It’s not something I have control over, so I just have to accept it if I want to break into the field.
And the more important reason is that, after taking the Web Development Path on Codecademy and built a personal website and two simple interactive apps for myself, I felt like something was still missing. I missed Python and wanted to focus on Python instead.
But Mr. FAF had a different idea. He told me to take the free online Princeton courses on Algorithms in Java. At first, I resisted the idea of learning a new language. I read online that I should focus on one language and master it.
Mr. FAF, however, had a different opinion, “Using Python is like driving a Toyota Corolla. It’s easy, and everyone can do it. But using Java is like driving a truck. Java is harder, but it’s more powerful. Once you can drive a truck, you can drive practically any other vehicles. But if you stick with a Toyota Corolla, you can only drive a Toyota Corolla.”
I thought that was an interesting analogy. Mr. FAF told me he had taken the Princeton course on Algorithms three times, so he understands the materials and can explain to me if I don’t understand something.
Mr. FAF made a good point. And I understand where he is coming from. Mr. FAF has learned programming in an academic setting most of his life. After all, he has a PhD in Computer Science. He also got a job offer from Google and Amazon Web Services, so he must know what he is talking about.
After much thought, I decided to take Mr. FAF advice and started on a plan he helped me draft below (in order):
Computer Science: Programming with a Purpose by Princeton University
Algorithms, Part I by Princeton University
Algorithms, Part II by Princeton University (Mr. FAF said I would only need to study graphs in this course since the rest is too hard.)
Introduction to Operating Systems by Georgia Tech
LeetCode problems
Mr. FAF said he took the courses on algorithms three times, so I will need to take the courses above multiple times until I really understand the materials. All of the courses above are free of charge!
After I get a firm grasp of the concepts and programming in Java, I will start solving problems on LeetCode. After that, I can start preparing for the job applications.
Mr. FAF said it would take me at least another year to finish all of this. It might seem long, but I can wait. I know it will take me a long time to grasp all of those challenging computer science concepts I had never encountered before.
Conclusion
And that’s what my life and my marriage have been like over the past five months. There’s more to the story, but I will spare you the detail.
Basically, I ended up in urgent care due to sleep deprivation and stress. I got all these rashes on my hands and face. I had trouble sleeping at night, got insanely hungry at night, ate like crazy, and gained a ton of weight. For two months, I had 4-5 hours of interrupted sleep (i.e. baby crying) at night and felt exhausted all the time.
At one point, I was 162 lbs (73kg), and I’m only 5’4. I was 35 lbs overweight. The doctor said I had eczema dermatitis and was stressed. They did a bunch of blood tests on me but couldn’t find anything wrong. They told me to try to relax and slow down on whatever it was that I was doing.
I took their advice, tried to go bed early, and told myself I wasn’t in a rush to get a developer job. Mr. FAF told me that if I get laid off, I can just stay at home and study full-time.
Things slowly got better.
Over the past month, I have lost 10 lbs. My eczema has also gotten better. That episode reminded me of when I was stressed out in grad school. Back then, I was all alone. Now I have Mr. FAF and two kids. I have a family who supports me.
Mr. FAF has been my biggest supporter during this journey. Over the past few months, whenever he hears me say “I’m not smart enough for this. Programming is for geniuses,” he will tell me “If you can overcome these hurdles, you will be a genius. And I will help you.”
I don’t care if Mr. FAF has flaws or if he’s not frugal enough. Hearing that he will support me and my career reaffirms my belief that I have married the right man.
Now I just keep to keep calm and focus on studying without going out of my mind. After all, programming is hard, and learning it takes time. I need to be patient with myself and take better care of my health if I want to keep going.
Related:
My Time Has Come: Facing A Layoff – Lost, Scared & Self-pity
Considering A Career Change To Programming – How It All Happened
Facing The Layoff Fear: Hubby’s Confidence Hit A New Low
How Being Poor Helps Me Be Happier In Life
Join Us For The Latest Update!
Join Us For The Latest Update!
I’m so proud of you for hanging in persevering.
Also want to say, this stress isn’t worth it.. Relax and make education a fun thing. Don’t set extreme deadlines. Stress kills. Says the person who almost got a major surgery thanks to the way my body reacted to stress. You body is having physiological response to stress (and this is just a tip of the iceberg what you are seeing) .. Take it seriously.
I’m sorry to hear about the surgery. I hope you didn’t have to go through it eventually. I think my body was speaking out, and I just need to listen to it. 🙁
Your husband is right. Languages, especially front end, change like the wind. I obtained a computer science degree way back in 2004. I no longer code and haven’t for some time. The languages are completely different now to then, most didn’t exist or have been revised significantly. My job doesn’t involve coding but sometimes it does involve looking at code for the cause of issues (I’m somewhere between a program manager, system architect, and business process analyst depending on the day). Understanding the basics means it doesn’t matter which language. I can usually look at code for about five minutes and spot the error. The underlying fundamentals rarely change.
“The underlying fundamentals rarely change.”
I heard many people complain that CS courses taught at school are too theoretical. I never got a CS degree, but I also think that the fundamentals are what we need to grasp first before doing anything fancy.
Thank you for writing this. My husband used to ask me to teach him English, and while I would support and encourage his study of English, my fear of the conflicts you describe made me encourage him to get a tutor/class. Perhaps I will consider offering to teach him because though the conflicts will happen, it’s partly about how much I support him in his learning. I do believe in his abilities, but I think maybe he doesn’t know that because I didn’t want to teach him (to avoid the conflicts).
Many other couples have told me the same thing! They have such huge tension when they teach each other new things that they just resort to a third party (i.e. driving). I’m sure your husband knows how supportive you are of him. Thanks for sharing your story!
I hope things will keep improving. It sounds like you’re really stressed out.
It’s tough being a mom, learning to code, and dealing with the visa issue.
Keep at it and try to relax a bit too.
BTW, I’m a horrible teacher. I tried teaching my wife Thai and it just didn’t work. It’s easier for her to learn from other people.
I am taking it slow these days. Learning how to code is difficult for an average person like me. That’s why I felt like I had to try harder to catch up. But it backfired big time. Lesson learned!
It’s great you’re learning a new skill but I think you should take care of yourself first. I’m sorry coding is taking such a huge toll on your health and I think its great you’ve been able to recognize this and make the necessary changes. However, I think its good to take some time and relax too, since you don’t have a mortgage you can afford to take time off work and do coding full-time and maybe live on your spousal visa for the time being. Life’s not a race and honestly the fire movement sometimes makes it seem like it is but your health and wellbeing should come first.
Will do. Thank you for your kind words! 🙂
I’m curious to hear what Mr. FAF thinks about studying SQL and databases. It seems like a very in-demand role that would be easier to learn than algorithms.
I thought about going down the Data Science route, and he was against it too. He said it’s not as rewarding as the SE path.
I’ll be curious to learn why Mr. FAF thinks that Data Science is not as rewarding as SE path. It was the opposite in my case. I was an SE before and I was not fulfilled in the role due to lack of human interaction. Then I got a job as a data analyst which is more rewarding to me. I’m considering a product data scientist as my next career move. Anyway, great content Ms. FAF 🙂
it’s funny,only last night I thought of you and that you had not posted for a while and I went back to read your last post hoping that you are ok and not too stressed.
You deserve to succeed because of the focus and effort but nothing is more important than your health so look at your time management so you have decent breaks and don’t work yourself into the ground.There will come a time when you will look back and be stunned and amazed at what you have achieved and how incredibly hard you have worked because you are one of the rare ones who sees the goal and is prepared to put in the effort to win.
Barbara
Thank you for thinking of me Barbara!I will try to take better care of you since I wasn’t even that productive when my health was deteriorating. As people say, without health, we have nothing!
While I do admire your dedication and perseverance, I agree with others. Please don’t make yourself sick with stress, it is not worth it, seriously. You are holding down a full time job, mothering two very young kids and trying to learn enough to get a full time job in another competitive field. You don’t want to crash and burn out after a few months. Take it easy and do it in your own pace, don’t set extremely hard deadlines. Try to enjoy what you are doing and make time for rest and relaxation too.
Regarding the web developer vs backend programmer thing, I think it is completely subjective. I am a hardcore C# and .Net programmer, my husband is a web developer and he makes more money than me. I have a friend who is a java programmer and he is always telling me how java is the bestest language there ever was. I just roll my eyes at him. These are all subjective opinions and you will always find someone who will argue with you. There is absolutely nothing wrong in having good skills in one subject without understanding the fundamentals of other subjects. I have many colleagues who have excellent skills in UI design or mobile development but zero knowledge in other aspects of programming. And it is fine, their skills are as crucial to the project. For what it’s worth, I feel that if getting a job in the field and making money is your goal, then do whatever comes easily to you and excites you. If, on the other hand, you want to be a truly strong programmer who has a strong grip on the subject then study algorithms, data structures, oops concepts and what not by all means.
“I have a friend who is a java programmer and he is always telling me how java is the bestest language there ever was.”
Mr. FAF tells me that all the time! I don’t know many other languages to compare, so I just take his words for it. I want to both make money and be a strong programmer, which I know is challenging since I’m not that smart to begin with (I know it). But Mr. FAF said I just need to persevere and get through this tough phase, so I will follow his advice to see where this takes me. I didn’t know your husband is a web developer. You two are such a power couple!
I have to agree with the comment above. That being said I also agree *partly* with Mr. FAF. I am in my CS PhD currently and I think your choices should reflect what you want from your programming job in the end. Do you want to do something that you like? Go for whatever interests you. Do you want to work at big-tech? Go for the stuff they look for; meaning fancy languages as well as underlying technical concepts. Do you want to maximize money output? Find a niche that is high in demand but nobody wants to do – COBOL and super old languages would be an example.
I think there is one fundamental truth to be extracted from the issue. If you learn general coding but not the underlying concepts of CS you will be replaceable by one of the thousands others who do a coding boot camp. If you want to excel at coding, then I think learning the CS fundemantals are a must. The language itself is then just a way of communicating your ideas within the abstract fundamentals.
What language to learn, what career path to choose and what method of education is up to you – all advice will be opinionated. My recommendation to you is to figure out what you want to do and then choose your educational path accordingly. There is no wrong answer I think – there is only *your* answer. 😉
I hope this makes sense and helps you in some way. Keep your head up! Perseverance is the foundation for your whole endeavor.
Yes! It makes a lot of sense. I guess my issue is that I don’t know enough to make an informed decision. I feel like I’m just floating around with a myriad of options and directions to pursue. I will take Mr. FAF’s advice for now since at least I can get his guidance on a regular basis and he’s done pretty well for himself. If it doesn’t work out, I’ll try another route. Thank you for your input!
Mrs.FAF, I am not sure why you keep saying you are not that smart. Seriously, i think you are one of the smartest people I have seen online. You manage your family and hold a full time job. You are highly educated. You have managed to figure out the intricacies of running a blog with almost no help. You are doing programming without a cs degree. You write beautifully. How much smarter does one need to get? Computer science or maths are not the only measuring sticks for smartness even though Asian cultures (including Indian) seem to drill that idea into our heads. Please believe me when I say I envy your talents and determination.
P.S. – Don’t take what developers say about languages seriously, lol. We all think what we do is the bestest.
Wow you made me feel so much better about myself. Thank you, Pooja! xoxo
Wow the last few paragraphs were scary (and I knew about some of that already!) – you know what’s odd, I got diagnosed with dermatitis too when I started to take my blogs more serious and making more effort maintaining them all. I am starting to think it was stress too, not stress at your level, I still slept a good 8-9 hours lmao! Unless everyone in the house wants to die I need my sleep.
I’m proud of you for growing and improving! It’s not easy and you’re just tackling it like WOAH! With 2 kids!
Oh no I didn’t know you have dermatitis too! At first I thought it was the dry and cold weather. But it didn’t improve when it got warmer. It just kept spreading to my face, and that’s when I knew there was a problem. 8-9 hours of sleep is needed and is good for you in the long run. What I’m going is totally not recommended!
I’ve missed you Ms. Faf but please take care of your health! And good luck with the programming.
Aww thank you, Humaira. I will! Take care!
Hi Ms. FAF! I occasionally read your blog but don’t comment most of the time. However, I have some personal experience with this topic that I can relate to your struggle :). My husband is also a programmer, I am not. A lot of his friends are also programmers, so I’m occasionally jealous of their high salary and cushy low stress tech jobs :). Now while I do agree fundamentals matter in any career, I don’t necessarily agree with your husband for pushing you into in depth computer science algorithms. My husband works with algorithms, and he’s had 9 years of formal computer science training including research. To be frank, I think you’re trying to take on too much. On the other hand, one of my best friends just switched careers like you and she studied website development and a little bit of Python. She had no computer science classes before either and was doing online classes on Udacity for 2 years or something like that. She found an internship and then eventually a full time job now being a software consultant, and even though it is not as high of a salary as other developers, it is enough money. And it gets her foot in the door so she can start learning more and making more connections. I also personally know someone else who graduated with a master in economics then did a 3 months boot camp in Data science and she works at Amazon now. Your husband may frown upon the people who only learned the tools and bypassed some of the fundamentals, but I’m telling you that strategy does work for someone who needs a quick career change. It may be hard to advance at first but it gets you a foot in the door and then you can keep learning at your new job, which will be a lot easier.
Hi Susan, I’m glad to hear that your friend has successfully switched careers. I’m really excited to hear inspiring stories like that. I told Mr. FAF the same thing that I can learn web development to get my foot in the door, but he advised me against it. He kept asking me if I was done learning web dev so that I could resume algorithms. He meant well, but those algorithms are SO difficult! @_@
Hey there! I just stumbled onto your blog from Minafi since I’m also an Asian in the D.C. area pursuing FI! Thought I’d offer my two cents in re: to changing to a tech career. While I agree with your husband that it is important to learn some core computer science tenets to be a good programmer, I think it’s a bit much and it definitely is not the only path to a “rewarding” career. There is this mentality I see with formally educated computer science/IT professionals that “because I know X and X was hard, everyone also needs to learn X to attain ___.” This is not true, especially not in the D.C. area. Yes, people that know X get offers from Google and Amazon, but so do many people who know some of X but also Y and Z. Diversity in experience and knowledge actually yields higher paying AND safer jobs. From an employer’s perspective, everyone knows some form of X, so if I need less X in my organization, I’ll replace my higher cost X with lower cost X. But how replacable are good people know X, Y, and Z? Especially self-taught people that are simply good at learning that taught themselves X, Y, and Z? The crazy thing is, getting some X, Y, and Z under your belt is much easier, it just requires you to pay some attention to what’s hot in the market.
Which brings me to more practical suggestions… Currently, what’s hot in this market (DMV area) is cloud, data science, information security, and sales. Knowledge and experience in one makes you very marketable, but more than one and you’ll have recruiters knocking down your door. I came from a security background — the moment I got my cloud certification (AWS CSA), my salary effectively *doubled*. You don’t need to be a “real software engineer” to get a high paying job, especially in D.C. Having some CS knowledge definitely helps, but there’s more than enough demand for tech talent that you don’t kill yourself learning the more esoteric CS concepts and legacy languages like Java (yeah, I said it). Python alone has gotten me *very* far.
Finally, while Google and Amazon may sound enticing, they aren’t the only path to a tech job (I know since I’ve been approached by both). There’s actually many organizations here in D.C. that are less competitive and pay far better, for the right skills. These government contractors have a lot of money, they have a very particular need, and aren’t able to attract talent the way these big tech companies can. So they compensate with significantly higher salaries and more flexible work-life. You’ll have much more negotiating power than you would with a big tech company and probably a fraction of the workload — which you can probably do from home 2-4 days a week. Speaking from experience 😉
Oh my thank you so much for the feedback, especially in the DC context! This is exactly what I was looking for when writing this post. Mr. FAF has been following one particular path, so it’s understandable that he thinks I should do the same. I’ve also mentioned the AWS cloud certification to Mr. FAF, but he said it’s too early for me, and that I need to learn the fundamentals first. I am REALLY struggling with all of these algorithms, so it’s a relief to know that I don’t have to master them to break into tech.
Glad to know you’ve achieved so much in your career! 🙂
I’m glad you found it helpful! You might also find it reassuring to know that I majored in public policy in college and only started in tech a few years ago.
I’ve used Linux Academy and A Cloud Guru to study for my AWS exams… You can start a trial and watch a few videos to see if any of it makes sense to you. If it does, you should go ahead with the course and try taking the exam! The content is a lot more practical than CS algorithms and the payoff is much more immediate! A lot of web developers pick up cloud expertise to supplement their front-end knowledge so they can reasonably call themselves full-stack developers.
That sounds like great resources. I will check them out. Thank you so much for sharing, Ronald! 🙂
Glad in the end everything is working out well. 🙂
Glad to hear an update from you. Looks like you’re doing well learning programming, so I hope the apprehension has died down a little now you’ve got something more concrete to show that you DO have the capabilities. 👏👏👏
As everyone else has said, be mindful of your health too.
I do think backend is great and the languages never really change (though Go and Rust and Scala are becoming more popular), but if you really love designing websites, then you should go for it. I’d rather have a backend dev who branched out into full-stack than the other way around though as some people might implement a feature badly because they don’t understand the runtime or memory for their code.
Also, if you get into the industry, no one is really using dynamic programming or union find or prefix sums or probably even traversing a binary tree. DSA are great to learn and get familiar with so you can actually use them in the right way, but there are very very very few people implementing the hard ones. I feel like that’s usually reserved for the people with phds in the research division. Even if you are one of those people, you can always google a research paper someone else wrote and implement their algo if necessary.
Plus, if you want to build a blogging or other empire, full-stack is more useful for side hustles. You’re not going to really need to deal with DSA on the backend of a small blogging or online empire since other people have generally created plugins you can buy to do the more complex technical stuff.
Also, I saw that you were going to take the CS course from Princeton. MIT has one of the best data strucutres + algos classes (6.006 and 6.046 and 6.854). 6.006 is taught in python and I really truly don’t think you need 6.046 or 6.854 for interviews — maybe 5-10% of it is actually asked in interviews that aren’t covered in 6.006 (interval scheduling, segment trees, MST). 6.006 should be enough even for FAANG interviews if you just practice the concepts on Leetcode.
Hi Olivia, thank you so much for your feedback and advice! I built a personal website from scratch and designed it based on what I’ve seen over the past 2 years of reading different blogs. It was fun at first but got tedious after a while. That’s why I wanted to go back to Python. Solving problems on LeetCode, though challenging, was somewhat more interesting to me. I think it’s also because I have no background in design, so it wasn’t particularly appealing. I was more into the idea of using JavaScript to build apps and games, but Mr. FAF advised me against it.
I did start the MIT Algorithms course a while back. When I got to Chapter 3, I had no idea what I was reading although I read it multiple times. Mr. FAF said that book is very theoretical. That’s why he told me to try the Princeton Algo course since it has more applications, and he has taken the course before and can explain it to me.
Mr. FAF and I just went through the Union Find homework the other day, and I was just like @_@. Poor Mr. FAF had to spend hours explaining to me how to approach that problem since I didn’t even know where to start. He said it took him a couple of weeks to pass that homework. And that course is for juniors at Princeton (wow!). They must be geniuses!
I don’t think you need to actually do the hw, since that is orders of magnitude harder than doing a LC problem in 45 min in an interview. You mention book, are you talking about CLRS? When taking the MIT course, I just took notes on the videos and did the LC questions. The recitations are interesting, but I think beyond the scope of interviews!
This is the book I was referring to: https://ms.sapientia.ro/~kasa/Algorithms_3rd.pdf. The hw for the Princeton course is daunting, but Mr. FAF encouraged me to do it since it helps me understand the difficult concepts. I also think it helps me understand how to use classes and methods. Mr. FAF said it’s what he does in his daily work. I might try your approach for the MIT course since the book is way beyond my head. >_<
Ah yes CLRS. People in tech refer to it as CLRS bc of the 4 authors last name’s initals. The MIT course teaches from that book, but I don’t think people read the book, since the teacher teaches directly from the book but in a digestible way. The book is hard to understand I feel unless you have very solid adv math foundations (I disliked the book as well haha).
Mr. FAF said that book is for people who want to become computer scientists, and that it’s the bible in Computer Science. It’s good to know other people find the book difficult to digest. Maybe I’ll just stick with the lectures. Whenever I take a course online, I try to read the book and do the homework. But when it’s too hard, I need to change the strategy a little bit because the alternative is that I won’t take the course at all haha.
Now that was an interesting view on marriage 🙂
Learning new skill takes always time. I’ve noticed that firsthand with my blog.
But, spouses will understand because we love what we do!
– Nordif Fire