Things are Created Twice


If you think about it, whenever we want to accomplish something, we need first to make it happen in our minds first. After we have created or visualized our goals in our minds, we apply effort. It can be a significant effort or not; this will depend what you want to make a reality. Think of the Golden Gate Bridge for a second; that structure was not always there. Out of need, to meet transportation needs in the area surrounding San Francisco, people visualized it (in their minds first). They put effort into making it become a reality, and it was completed in 1937.

Why Should You Care?

Why? Let me ask you this. Have you accomplished all your goals? No, then you should care. By the way, this does not apply to bridge-building or just material things. This way of thinking applies to you trying to become a software developer, creating that project you have been thinking about, getting in shape, or opening your own business. Start practicing visualizing and achieving goals in your mind. Picture yourself sitting in that brand new car you have been wanting. Start picturing yourself as a developer and living that lifestyle you have imagined. Do not picture those things happening to someone else, in the third-person. Visualize you are standing in the first-person perspective and that those things are happening to you. It helps to start with small things/goals to build confidence. Start by visualizing that your next meeting will go well or that you will have a good productive day tomorrow. There might be a hiccup here and there, but visualize that will not derail your meeting or your day.

It’s Not Cake, Still Definitely Possible

If you can’t achieve your goals in your mind, you already lost. Let me explain. If you cannot reach your goals in your mind, you can’t expect to achieve them in real life, simple. However, there is absolutely no risk in attempting to visualize yourself achieving your goals in your mind. There is no downside, and it doesn’t cost anything, well maybe just a few minutes of your time. Nothing and no one can hold you back from achieving your goals in your mind, except yourself.

Surprisingly, many people are held back because they aren’t able to visualize themselves achieving their goals. You might think that it is harder to apply the effort in the “real world” necessary to achieve goals, but conquering our minds, in my opinion, is harder for most people.

I genuinely think we all have the ability and capacity to reach our goals, but we need to acquire the right mindset first. As I mentioned earlier, start with small things, and over time shoot for bigger goals. Sooner than you think, you will be driving that Ferrari.

You can also find this article along with others on Medium Click Here

A Couple of Things I Learned by Starting A YouTube Channel

I have always been a shy person, quiet, an introvert. I used to cringe when I heard recordings of my voice, and I could not look any stiffer in front of a camera; actually, I still might, but I didn’t let that hold me back. I want to share the experiences I’ve had in the last couple of months since I committed to growing my YouTube channel. I’m sure many of you felt or feel the same way while you are contemplating starting a YouTube channel.


I am a software developer. I consider myself self-taught since I do not have a degree in computer science. I have been programming since 1999, and two years ago, I decided to start a niche account on Instagram with no expectations and called it @thedevlife. Surprisingly, that account grew very well, and the community is at 138 thousand followers at the time I’m writing this. Interacting with the community on Instagram, I realized that there is an abundance of people who want to become software developers and have no idea where to start. Some of them have a plan, but those plans do not align with their goals. From personal experience, I know their learning journeys will be lengthened if they follow those plans. I wish that someone was there by my side to be my mentor and streamline my learning plan. The goal for my YouTube channel is to share insights and experiences that can help new software developers starting their journey.

Not Instant

I cannot stress this point enough. Results on YouTube are not instant. Do not expect to publish one or two, even ten videos, and gain a thousand subscribers. It won’t happen, at least not organically. Growing your subscriber count takes time, so be prepared for that, and do not make a mistake many new YouTubers make of quitting three videos too soon. Be prepared for a marathon, not a sprint.

Be Consistent

I did not start seeing positive results until I committed to publishing at least one video per week. Subscribers and views did not begin growing consistently until the second and third weeks. You will probably feel discouraged at the beginning, maybe for the first month, but do not give up and post at least one video per week, if you can do two or more in a week even better, but no less than one.

Do not judge your videos too much. Do not expect them the quality to be excellent, especially if you have no experience with video production. Remember, the most important thing is to express your ideas even if the video quality is not remarkable. The quality of your videos will naturally increase as you release more and more videos.


The formula is straightforward but not easy to execute. The best way to grow your channel is by creating and publishing videos. The good thing is that; videos are like pushups; the more you do, the easier they get.

2 Biggest Mistakes Junior Developers Make

Running @thedevlife on Instagram has exposed me to a lot of questions from software developers and engineers from different skill levels and experience. Using that information, along with my personal experiences in the industry, I have identified the two mistakes new developers make. If you are new to software development, this might be beneficial.

Waiting Too Long

When is a developer ready to start creating applications? That is one of the most popular questions I get. My answer to that question is “now.” Let me explain why. When I get that question from a developer, I take that question as asking for confirmation or in an indirect way asking for me to give them a little push to start working on an application. Sometimes it might even feel as if they are asking for permission to start. When you are new to programming, you might feel uncomfortable, and you might lack the confidence to start building, that is a natural feeling. However, you should put that feeling aside and get started as quickly as you can.

Some developers wait until they feel comfortable with the language or framework they are working with to start building. If you do that, you might have waited too long. One of the reasons you want to start building applications is to have something to show when you are interviewing for a position. The lack of a portfolio can have a substantial negative impact on your career. Waiting too long is not advisable. The applications or services you build might not become a great success, but you will gain experience by working on them. The apps you create can also be used in your portfolio.

Not Being Coachable

Sometimes I come across developers who love to use the phrase “I know” to cut someone off when a peer is trying to get a point across. The worst part about this is that some of the time, they actually don’t know what is being explained to them; they use the phrase “I know” to not appear vulnerable. If you always say you already know, your peers will stop trying to help you out because you will not be approachable. Sometimes, even if I already do know what is being explained to me, I give the other person a chance to say what they want to say because I could be wrong. Sometimes I am surprised and pick up a bit of new knowledge just by letting someone explain what they have to say or explain. 

My advice to you is to stay humble, showing your vulnerability might feel uncomfortable, but it has lots of value long term because you will learn from having concepts explained to you. On the other hand, if you are not open, you would be making it more difficult for yourself to learn new things.

Final Thoughts

 Remaining coachable expresses to the ones around you that you are open and willing to learn new things. Learning in tech or any other space for that matter is very important. The moment you stop learning, you start dying.

Embrace Change to be Successful

When we are doing our job at our workplace, when we have been doing it for a long time, we become good at it. We also become complacent, and we lose our ability to see better ways of doing our job. We become efficient at following the same process every day, and that could be scary. At the personal level this could look like an excellent thing for you, chances are it actually is, but at the company level, this could be counterproductive.

The competitors to the company you work for could be embracing change and maybe have developed processes to incorporate changes as part of operations. Having an open mindset for change would allow that competitor to have the edge over your organization.

There could be a lot of friction and push-back when a new, needed process is introduced to the company. As an employee, you have to step out of the comfort zone and learn new things. My advice would be to stay open-minded and try to understand what advantages your organization will receive by doing things differently. Do not focus only on the extra amount of effort that will be expected out you. Understand that opportunities to advance or move up within the company will also open up as part of the changes taking effect. Change is good.

I have experienced this hesitation to embrace change. About two years ago, before I got my current job, I worked at a startup, and our tool of choice for managing our repositories was the Github client. When I started my new job, I was told I had to use a different client called SmartGit. It was a pain having to change at the beginning, but I believed there had to be a reason why this developer shop used SmartGit over the Github client. Long story short, two years later, I now prefer SmartGit over the GitHub client.

If you are not as successful as you want to be today, the only thing that might be missing is change.

Why Following your Passion is Wrong.

Recently I might have been rough posting this message on my Instagram account, but I didn’t mean to be harsh. Let me explain.

I used to believe “Follow your Passion” was the most excellent advice anyone could get, especially since Steve Jobs gave this advice on his speech to Standford graduates. It made perfect sense; everyone wants to have a great life and following what you are passionate about should amplify the chances of that happening.

I started listening to the audiobook “So Good They Can’t Ignore You” by Cal Newport, and before I even finished the second chapter, I was compelled to think about the message it brought right away.

Look at it this way

First off, a lot of great things that have been invented were not created based on passion. One of the most prominent examples is Apple. Steve Jobs did not get into manufacturing computers because he was passionate about it. He got into that because he saw an opportunity, and it turned out to be a successful business. His passion at the time was spiritualism, and creating personal computers was his primary purpose at that time. He saw an opportunity, and he took it. He focused on making great products and somewhere along the way he became passionate about building great products and, well, you know the rest of the story.

I am a software developer. One of my passions growing up was being or becoming an architect; becoming a software engineer was not one of them. Growing up, I never thought about being a programmer. Surprisingly I can now say that I have a passion for writing software.

Why following your passion could be wrong.

You can follow your emotions at any time. You might even feel passionate about doing something. You can also remain passionate about something for a long time, but that doesn’t necessarily mean you will be happy or prosperous once you start following your “passion.” Let me give you an example; I cannot cook to save my life. Let’s imagine that tomorrow I developed the urge to open up a restaurant and be the chef at this said restaurant. After a few months that call turns into a passion, I pick up cooking and start learning more about it. I take out a loan and open up a restaurant. I followed my passion. If I get lucky that could turn into a “thing,” but that would be highly unlikely because there are many other chefs in my city that have more experience at creating amazing dishes and running a restaurant business. In the end, I could end up in debt due to a failed attempt at running a restaurant.

What’s the alternative? Why being practical pays off

By no means am I wealthy, affluent person or anything related, at least not yet. However, I focused on the craftsman mindset, and I can now say that I am now reaping the benefits of doing that. What is the craftsman mindset? As Cal Newport mentions in his book, we tend to look at the World and try to figure out what the World can do for us, instead of focusing on what we can provide to the World or how we can make it better. In short, taking value instead of offering value. What I realized, early on, while listening to the book was that gaining skills in your current field pays off. Circling back to my story, I stayed firm on polishing my programming skills, learning new things on my own until I reached an adequate level of expertise. Now, I can say I am passionate about what I do and being skilled at it helped.

My Advise/Conclusion

Be practical, find out if the job you currently have has a way to build career capital, which is a way to leverage your experience over time when you go find your next job. Make sure that your job is providing value to the World and that you do not have to deal with people you hate to be able to do your work. If what you are currently doing to earn a living meets any of these three criteria, does not build career capital, does not bring value to the World or having to work with unlikeable people, change careers. Otherwise, hone in on increasing your skill level and be patient to start feeling a passion for what you do. Eventually, you will have enough “career capital” to be successful and be passionate about what you do.

A Tip to Overcome the Impostor Syndrome

The way I started my career was unorthodox, a combination of a bit of college and the vast majority I was self-taught. While working in the construction field for 12 years, I did freelance work as a software developer in my spare time. Shortly after that, I became a co-founder in a small startup that combined my skills in the construction industry and software development. I was very confident and successful (with the help of a friend) in developing the product we were trying to launch, but unfortunately, as the majority of startups, we ran out of runway before getting enough traction. I found myself at a crossroads, asking myself whether I should go back to working in construction full-time or get a job as a software developer.

I chose the latter, and for a while, I struggled with impostor syndrome. Looking back, I don’t think that I should have, because I had enough experience to be competent in the workplace as a developer. Whether the way I felt was rational or not, I still felt somewhat incompetent.

The Struggle

Showing up to work every day for a while was daunting. The uncertainty, whether I was going to be able to step up to the plate, was always looming. The internal struggle was constantly there, and hiding it from colleagues was draining. Appearing confident was taking its toll over time. The primary source of motivation was the fact that I was doing something I loved. I worked hard to get there and earn the opportunity to do it.

Change Your Perception

I kept working hard, stayed humble, and coachable. After a while, I realized that I was competent and capable enough to complete tasks efficiently. I worked hard, always putting a significant emphasis on learning and I still do to this day. The only thing I had to change was my perception of the whole situation. I ended up understanding that I was doing everything I should be doing to do well as a developer. I was too hard of a critic on myself. I started seeing the circumstance as some type of friction I had to overcome. The Universe’s friction is how I came to understand it after reading a few self-help books. The position I had found myself in was something that I will always have to work against one way or another. Focusing on being grateful for the opportunity and continually remembering that I’m allowed to do something I love every day started diminishing the impact that insecurity had on me.

It’s the Universe’s friction. Don’t give up.

I come from a technical background, so naturally, I looked for a logical solution for the way I felt. Trying to learn a new skill or skills seemed like a reasonable way of solving my problem. It turned out, the solution that worked for me was trying to digest the situation more spiritually. The root of the problem was the fact that there was a significant change in my life. I was in a new environment, new job, and new co-workers. Behind the scenes, this big change comes bundled up with a significant dose of uncertainty in your life. Every change in your life will come bundled up this way. Whenever you are trying to get ahead in life, expect this friction to be there, and stay your course.

New to software development? Here is what you need to know.


Starting your journey as a software developer nowadays could be overwhelming if you don’t have a mentor or access to constant guidance. There is a vast number of technologies, languages, and frameworks that could make your journey more complicated. I want to share with you some tips that could help you clear out a path for your developer journey. Warning, you may see the term “things” being used very loosely, so whenever you see that term keep in mind, I am using it interchangeably with frameworks, languages, libraries, and methodologies.

Do not aim to become an expert in the first week.

Patience, patience, patience. I think the two most essential traits developers should have are, excellent problem-solving skills and patience. I mean lots of patience. As you will learn in due time, if you haven’t already, things don’t usually work on the first try when you are coding, especially when you are starting out. It would be wise not to expect to become an expert in a short amount of time. Becoming an expert as in any other field comes with practice. Expect to make constant incremental progress as you learn new things and work on projects, so don’t beat yourself up if you don’t pick up things quickly.

Don’t allow yourself to get overwhelmed.

As I mentioned in the introduction, there are way too many things to learn out there. When we are new to this field, we tend to get excited when we grasp something new like a framework or library, right away we want to start using in our project(s) even if the functionality of the application does not require it. Another common scenario is that we want to feel like we have another notch under our belt and move on to the next thing. Not always thoroughly learning all the correct applications for what we learned.

A right approach would be to find out what you want to specialize in. You could be visualizing yourself working on the front-end, back-end, mobile, AI, or big data. Each one of these specializations requires a different path for you to be able to get there the quickest. I have written my thoughts about this. You can find that post here.

Build ASAP

Don’t spend too much time learning new things. I don’t want to contradict myself, so let me explain. Throughout the years, I have spent a lot of time learning new things that I never used. I spent many hours learning something that I thought would be beneficial or just downright cool and end up not building anything with that gained knowledge. The reason we learn things is to be able to accomplish a goal, to create an application. I advise you take a step back and find out the pieces that are required to build what you want to develop and what knowledge you need to have for each of the parts that go into putting the application together.

Once you know what those things are, start building as soon as you know enough. The rest will be trial and error as you start developing, expect this to be the case even as you gain experience. The best way to remember how things work is by applying what you learn.

It’s just like playing with Legos.

After a while, after building a handful of applications, you will start to realize that a lot of the pieces that go into an app are similar. You don’t have to re-invent the wheel for each application. Design your projects in a way you can re-use code you have previously written. Sticking to the same tech stack over time will turn out as an advantage. Switching languages or technologies will limit the ability to re-use code, but if you play it right, you will be building a library of code overtime which you will be able to use to piece together an application and shorten the development cycle.


It is very close to impossible to learn everything there is to know about computer science, and even if someone knew everything there is know, that person wouldn’t have enough time to apply all of their knowledge. What I’m trying to say is figure out the reason you got or are getting into programming. Usually doing it for solely financial goals is not a good reason. In addition to monetary compensation, there has to be the element of passion, whether it is for building things or for an idea/vision you want to develop. Motivation is a vital part of becoming a good developer; getting satisfaction from what you make will keep you going.

Laptop Recommendations for a New Software Developer

If you’re new to developing or maybe thinking about getting into programming one of the things that might come to mind is which computer should you be using. I run thedevlife, an account on Instagram and get asked the question very often: What laptop do you recommend?

There are a few factors that you need consider that will help you make this decision simpler. The most significant factor will naturally be your budget. If you have a lot of money or enough money to buy whatever laptop you want, then you will have to do a bit more thinking before you make a decision, although the reality is most people have a budget. Regardless of whether you are on a budget or not, here are the other factors you need to consider.

Gaming Laptop

In some situations programming will not be the only activity, maybe you are a gamer. In my humble opinion, if you’re not going to be moving a lot, I recommend you purchase a gaming desktop. This way you will get more bang for your buck, hardware tends to be cheaper for desktop computers. You can also perform upgrades, later on. Years later that computer will still be fully functional and able to run the latest video games, not to mention you’ll still be able to code on it also for years to come. However, if you must take your computer with you, then your best and only option has to be a gaming laptop.

No Gaming Required

If a desktop is not an option and you won’t do any heavy gaming, the best option for me would be a MacbookPro. I personally would not like to haul a gaming laptop around. Gaming laptops are usually heavier. When choosing a laptop, one of the criteria I really look for is being able to open it up and instantly start using it. I don’t like waiting for that laptop to boot up. I don’t want to wait a minute or two before I can start coding. This is one of the reasons why I like Macs, you pretty much open them, and you are ready to go. Another reason why I prefer Macs is that they have excellent battery life. If you do not want to spend that much money on Mac laptop, choosing a Windows PC with an SSD (Solid State Drive) can give you the almost instant boot up times. SSD used to have a hefty price tag on them, but as of late they have become more affordable. You would be saving some money and not sacrifice much of the performance. I would definitely recommend avoiding mechanical hard drives.

Screen Size

You might think bigger screens are always better, but not on laptops. I used a 17-inch MacBook Pro for a while, and it didn’t work out for me. The bigger the screen is, the more significant the form factor of the computer will be which might not be a big deal at the beginning, but over time it becomes a burden. Too small is not good either. I have tried 14 or 13-inch screens, and I discovered there just wasn’t enough real estate for me when programming. I think a 15-inch MacBook Pro is where the sweet spot is. Screen resolution, that’s another thing. Some people spend the extra money on a 4K screen but keep this in mind, sometimes you can’t really take advantage of all the pixels. If you run your screen at native resolution, you won’t be able to read the small text, and the power consumption on your computer will go up which in turn will reduce the battery life. I recommend you aim for a 15-inch screen with a 1080p resolution.


As far as laptop performance when you are developing, you don’t need a lot of power, unless you will be creating a video game. For the most part, you will either be doing web development, mobile development or back-end development. For these functions, I think a laptop equipped with a mid-range CPU, like a Core i5 with 8Gb RAM would do the job. There is a caveat if you will be doing mobile developing targeting iOS, you will be required to use a Mac. This does not mean you need to get the top of the line MacBook Pro, but you will have to invest in an Apple computer.

Get More For Your Money

Seven or eight hundred dollars should be able to buy you a machine good enough for programming. A strategy that has worked out very well for me (if you don’t mind a used computer) is looking at laptops that are designed for business companies the Dell Latitude, HP Elitebook or the Lenovo ThinkPad T-series. The reason I mention this is that companies usually buy these models in bulk numbers. Employees get laid-off, or computers are upgraded company-wide. The surplus or “old” laptops get sold on either eBay or Amazon where you could get an excellent deal. I currently own a ThinkPad T560 with 16Gb or RAM, 256Gb SSD, 15-inch touch screen and a Core i5 processor. I purchased it a couple of years ago on eBay. It is still in perfect working condition, and I paid only $600 with two years left on the manufacturer’s warranty. At that time when I purchased it, the next generation ThinkPad T570 were available for $1,600.00 with similar specs. You can still find deals similar to this if you spend some time looking which could save you a lot of money.


There is no perfect laptop. There is no “one size fits all” when it comes to laptops. I have personally used anywhere between 10 or 15 different models of notebooks throughout my career, and my top choice is a 15-inch MacBook Pro. No matter what, I honestly believe you will have to do some experimenting of your own to find out which model works best for you, but keeping what I mentioned above in mind, should give you a sense of direction of where to start.

If you are new to the developer journey this article might also be helpful: Tips on how to become a software developer

A Mac vs. PC Experiment for Developers

Talking about Mac vs. PC could trigger a perpetual and heated discussion for both sides. Before I continue, I should clear some things out. Some of you might already be jumping at the bit to correct me. I understand that technically a Mac falls under the personal computer category, so let me give you a few more details about this experiment. I know there are a lot of users who are very passionate about Linux, Unix or other flavors of operating systems other than Windows and MacOS. I apologize in advance; it is not technically accurate to group all non-MacOS operating systems in the “PC” bucket along with Windows. I’m sorry about that, but for the sake of this experiment, I figured it was the best option.

About a year ago I showed my naivete by asking on my Instagram account @thedevlife why developers preferred Macs to do their work. You see, I made the mistake of assuming Macs were more popular. As you might have guessed, I did receive my fair share of messages full of intensity, for lack of a better word. These came mostly from Linux fans who rightfully felt left out. Recently, a young developer who I admire made a post on Instagram making the same assumption. I made that assumption because pictures of Mac computers are trendy on social media and somehow create the illusion that Macs are more popular in development. This erroneous assumption was the main reason that prompted me to run this experiment on Instagram.

The goal of the experiment is not to show that either side is better, it is not an experiment about hardware either. I am not sure what the primary goal for the research was other than the curiosity to know why developers chose one over the other.

These are the results.

1 Hour
6 hours
9 hours
11 hours

When the Instagram story ended 4061 viewed the story and 3203 people voted, the final percentages were 38% for Mac and 62% for PC. Unfortunately, I did not get a chance to capture a screenshot closer to the 24 hours a story post lasts.

Reasons in favor of Mac

  • Macs tend to hold their value better
  • Simply because they have used a Mac longer than a PC
  • The user interface is better
  • Is needed to code in Swift and develop iOS applications
  • Windows sucks
  • Beautiful design
  • Easiest way to use a computer
  • Better file structure
  • AirDrop is really helpful
  • No automatic updates
  • Terminal environment
  • Some applications are made only for Mac
  • Easier configuration
  • No driver problems
  • Better battery life
  • Mac is more adequate for UI/UX Design

Reasons in favor of PC

  • A PC is what employers provide at the respective workplace
  • Linux is free
  • More affordable than Mac
  • Windows is a better platform for gaming
  • Windows 10 is stable
  • Better memory management
  • Needed to work with .NET Framework
  • Bigger developer community for Windows
  • More applications
  • More options on hardware
  • Easier to crack a program on Windows
  • Love for Visual Studio IDE
  • Windows is more mainstream in respective city

Many of the reasons shared are debatable and can start a discussion for decades, but please remember these are personal reasons for choosing one side of the other. There are a plethora of reasons why either side was elected, but looking at the results shows that I was indeed mistaken by assuming Macs were popular among developers. Macs might be more popular in some regions, and Mac users might feel more confident to share pictures of their system on social media, but those numbers don’t necessarily represent the number of developers using Mac vs. PC.

Tips on how to become a software developer

How do I get started as a developer? This is probably the question I get asked the most on social media. I run a page on Instagram called @thedevelife, with almost 90k followers at the time I’m writing this. That question comes up at least once a day. It is also a hard question to answer.

Sometimes people get glamoured by the pictures they see on Instagram of a dude attempting to be code at the beach on a sunny day. I’ve been a programmer for more than ten years, and I have not been able to code at the beach efficiently. I have attempted it a couple times, but it did not work out for me. At least in my experience that has been the case. What I’m trying to say is that sometimes people want to become programmers for the wrong reasons. Aspiring developers like the freedom being portrayed in social media, but sometimes that is all it is, just a portrayal. There is a lot of freedom that comes along with being able to work from any place with a WiFi connection, but there still some limitations. There are a lot of good things that come from being a programmer, the biggest, in my opinion, is knowing that someone out there is using an application you built in their everyday life. I became a programmer because I love to create cool shit and then eventually the perks of being a programmer came along.

When I give advice to someone on how to get started, I lead with the following questions.

What do you see yourself doing as a developer?

Do you see yourself working on the front-end, back-end, maybe programming for mobile devices?

Depending on the answer to these questions, the steps anyone looking to become a developer should take might be slightly different. There isn’t an answer that fits all situations. Also, I cannot provide advice on areas I have not enough experience with like Big Data, AI or IOT. I am familiar with back-end development, mobile, and web development being my strength (my kung-fu is pretty strong when doing work for the web), so if you want to pursue any of those areas I have deficiencies on, I apologize (sad face), I can’t be of value there.

Let me start with bad news first. If you aren’t able to sit in front of the computer for long periods of time and work late nights, sorry to say this might not be for you. I say this because you will have to work long hours to develop an application worthwhile, once that application goes live you might be required to work even longer hours. If the app goes down for whatever reason, you will be expected to show up in the office (or get online at 3AM) to help resolve the issue. At the very least you will have to respond as soon as possible, even if you are working on another project. If you don’t like the sound of this, maybe being a developer might not be for you.

Something else you will need is to have is a mind of a problem solver. I have met programmers who struggle because they are not able to solve a problem or are not resourceful enough to look and find the information that will aid them to resolve the issue at hand. You will not be expected to have a swift solution to every problem that is thrown at you, but the expectation of you being able to solve issues will definitely be a factor in your success as a dev.

Now that we got all the negativity out of the way let’s get into something more constructive. Don’t try to take on too much too fast. I suggest you get proficient at one thing at a time before moving onto learning something else. Figuring out where you want to end up working will help with this. If you’re going to be a full-stack web developer, focus on either the front-end or the back-end until you learn it, then and only then move on to the other. Trying to learn both at the same time might overwhelm you. Let’s explore or this scenario a bit more. Let’s assume you will choose to learn the front-end first, then move on to the back-end and you know your way around a computer, but have not taken any computer science courses.

Front-End Web Development

HTML, CSS and Javascript. Those are the main things you will need to learn to be able to build a UI. JavaScript can be used on the back-end, but in this case, JavaScript will be used for the UI. HTML and CSS, go hand in hand, and without being familiar with those two, you won’t get far, so I advise you learn these first. Then you can get familiar with JavaScript, pure JS without jQuery or any other framework or library. I would only devote enough time to learn how to access DOM elements (by the way if you don’t know what some of the acronyms or terms mean, I will make a list at the bottom of the most common ones) and make simple manipulations to HTML elements. Once you feel comfortable moving around the DOM, I recommend choosing a JavaScript framework. I like ReactJS (technically, React is a library, but many refer to it as a framework), there is also Angular and VueJS which are very popular. All have their pros and cons, the reason why I chose React is that is the most versatile, and once you know ReactJS, the learning curve to learn React Native is small, this will be an advantage if you ever want start building mobile applications. Take some time to do some research and pick the one you think is the best.

Mobile Development

Like web development there a few flavors you can choose from. You can be a truly native developer and learn Java or Kotlin to develop for Android then learn Swift to code for iOS devices. Or, you can choose React Native for which you need to learn JavaScript and develop for both platforms, Android, and iOS at the same time. I personally chose this route because using React Native is just a hop away if you are already familiar with ReactJS. React or React Native will require you to have knowledge of JavaScript. Another advantage is that if you start with mobile development using React Native moving your skills to web development the learning curve will be minimal.

Back-End Development

Here is where you can choose from a plethora of frameworks, some of them are PHP, Python, Java, Ruby On Rails, NodeJs and many more. The best approach for planning out your back-end is to develop a RESTful API your web application or mobile application can access to be able to send and retrieve data securely. All the frameworks or languages mentioned above can help you achieve this. The frameworks I work with are .NET Framework and .NET Core with C# as the language of choice. Again, I was pragmatic with my approach I chose C# because I can build applications for many platforms and there is a ton of documentation on how to get started with Web APIs. The main thing to keep in mind is to make sure you can reuse your code and/or web API(s) as much as you can.

I don’t expect this to be a guide on how to become a developer. I would look at it more like a set of tips that I wish someone would have shared with me when I was starting out. I’d love to hear your thoughts on this, you can find me at or @thedevlife on Instagram.