Hey Heeral! Thanks for reading and I appreciate you putting yourself out there to reach out. We’ve all been afraid and we’ve all needed help. Somebody helped me face my fear of the math involved in CS and told me to learn to love it and get through it. I’m a 22 year old junior in college and only started programming when I was a 19 year old freshman. You’re not too late. Its never too late.
On Being Too Late
At IBM, I worked with a programmer who started when he was 12. Some, Zuckerberg, started when they were five. Simply put, everyone finds there passion at different points in life. If you are passionate about developing software, don’t worry about the external forces. All you need to worry about is how much you’re willing to sacrifice to get where you want to be, where you belong. Your health is the most important thing, then your family, friends and dreams all must compete for second place. You can have all four, but contrary to some, something has to give. I know, I may be the contrarian on the topic of sacrifice with that last statement, but you will need to give up some time with friends and family to get where you want to be. How much time you give up will be up to you.
On learning programming languages, concepts, patterns, and other related topics, I say focus on one at a time and pick and plug the ones that are necessary for the current project. Conceive an idea you want to develop and learn how to do it. If you want to build mobile apps, say Android, you will primarily have to learn Java, but at the same time, you’ll learn design patterns, best practices, may be even UI, concepts of web services, and working with XML. If you want to build a website, you may use the LAMP stack and at the same time learn HTML, CSS, how to manipulate servers, and so much more.
On Learning Programming Languages
There’s an exponential 1-over (perhaps 1/[x^(x+1)]) relationship in learning programming languages. At the start, you are at 1/1 and that is the hardest place to be because you are learning your first programming language. Then you go to learn your second one, but instead of being at 1/2, you may be at 1/2³ because you learned so much in learning the first language and a lot of that acquired knowledge will apply to learning the new, second language. It gets easier as you go, so don’t be too intimidated. You have to embrace the nature of constant learning. I work with people who are in the second or third decade of their careers and are still googling concepts and learning new languages. Because things change so quickly in tech, you’ll have to keep on your toes and continue to learn. The good thing is that the weight on your toes lightens as you grow. Take it one step at a time.
On Moving Forward
With all that said, you are on your way. Here are some tips to deal with what we all have to deal with everyday and at every stage in our lives.
Don’t compare yourself to anyone else. My mom has been doing it to me since I was a child and it always bothered me. She’d tell me how the other kids are wearing the cool things she bought me, and I’d say, “I’m Lincoln,” not them. You are yourself and nobody else. Only you know what you’ve gone through to get where you are and how much you’re willing to do to reach the feats you desire. Believe in yourself and remember that even Steve Jobs put his pants on one leg at a time.
If you ever start to think that others are better than you because they are doing all these cool and exciting things, remember that all is relative. You are doing cool things, too, but the world has not yet seen it because Tech Crunch and the others are sleeping on you. One day you’ll make them wake up, open their eyes, and see how great you are. It’ll take time, but you’ll get there.
Be a master scheduler. Plan out your days. Execute your plans. When it comes to learning new languages and building projects, write out what you want to do. Design your projects. Write the requirements and what it’ll take to build it. Make it clear what it means for a specific project to be done. And when you declare the project done, reflect, celebrate, and rest. Then move to the next project.
Before you start learning, make it clear to yourself what it is exactly you want to learn. If you don’t, you’ll be sure to wonder in the madness that is the web between Google, StackOverflow threads, Facebook, Medium posts, Twitter, LinkedIn, and the other distractions. You must have a clear goal and focus on it. If you want to learn how to make an array in Java and you set out to, you’ll probably go to Google and find a StackOverflow link that will answer your question. However, if you’re not clear on your goal, you may see another link about making hash maps from arrays and start reading that,too. The problem with that is that you never intended to learn about hash maps; you don’t even know what maps are yet and don’t have a use for it — it’ll only confuse you. If you are clear, you’ll get the answers you need and continue towards your goal.
Plan out what you want to learn. Two years ago, I knew I wanted to learn how to build a social marketplace online and an Android app. I decided which I wanted to do more and started on it. I went online and learned how to build a social network and then learned it into a marketplace. That was done when I built the last feature and launched it. Next up was learning Android, so I went online and learned how to build a snapchat clone because I knew I’d learn many concepts from such a project. That was done when I launched it. And I continued that pattern. You should do the same. Pick a project, complete it, learn, and move on. May be you’ll build something so cool the whole world will want to use it and you may not have to move to the next project, but until then, keep going.
On Staying Sane Through it All
Computer science and engineering aren’t easy, which is why few do it. But it’s worth doing. You’ll run into times when you feel you are not good enough and you’ll feel alone. To cope with that, find friends with similar interests and skills and stay tight. I have two friends, Andres Ramos is one, in software engineering who I met my freshman year. We call ourselves Ground Zero and do everything together. We cry together, laugh together, and most importantly, learn together. We keep one another going and hold the one another accountable. Join computer science related groups on Facebook and Instagram because the members are like you; we all share the same downfalls and victories, so we are all able to laugh about similar experiences. This keeps me sane and I’m sure it’ll keep you sane.
Besides coding, do other things that make you tick. I write and read books. I edit publications like Marketing & Growth Hacking & Inspire the World. I enjoy inspiring others and sharing knowledge. I created both of those publications in my freshman year so I could share my ideas with the world and spread the ideas of other minds as well.
Lastly, identify your passion and your why. Start with why, like Simon says, and go from there. Why do you do what you do. You must know this in order to stay sane. What is your passion? Finally, how will you use your passion to build the life you want?
I do what I do because my mom suffered through a tough life, thus far, to get me where I am and I aspire to write her retirement statement while building a better world for us to live in. My passion is in developing software to enable people to accomplish their goals more efficiently. I will use my passion to develop software that assists humans in communicating, sharing ideas, and staying inTouch with those who matter most to them.
If you haven’t seen this video yet, watch it and be inspired.
I’m wishing you the best. You can reach most reliably by emailing LincolnWDaniel@gmail.com. Lets stay inTouch.