loading...

I'm lost and don't know what to do.

abisekhsubedi profile image अभिषेक सुबेदी Updated on ・2 min read

Hi, I'm someone who decided to learn to code back in 2017. Learned bit of html, css and js still a noob from colt steele the web developer bootcamp(didn't complete at all), freecodecode camp, couple of courses from udemy and videos on youtube(traversy media, devtips etc) and building todo app and portfolio website and even solving leetcode problem, started following people on twitter, reddit & medium (hackernoon,coderbrust, free code camp etc) because I want to know what is happening and want to keep myself updated then looked into data science. ooh! the sexiest job of 21-century wahoo. Started to learn python other perfect waste of time searching udemy, asking people on FB group which is the best course, should I do that or that ended up with 17 courses with title **learn python for data science* again frustrated!! but guess what I know linear algebra, statistics and probability, and calculus because these were on my university bachelor's degree syllabus. I thought plus point, data science is definitely for me. Again oh! wait machine learning and this and that. I ended up with curated list of resource on python, data science, ML and DL from github, udemy, youtube, edx and from different other paltfrom like machinelearningamastery, stanford and many other, spend almost 6 months on this things and I'm still a noob. I haven't started exploring these resources yet and now I spend my entire 1 year doing just actually little js and alot of css and bit of python and spending a lot of time on searching resources. Now I'm depressed, frustrated, afraid because I'm someone who enrolled in bachelor on computer science degree. Until my 3rd year I haven't learned anything, nothing at all.Somehow even screwed my formal education will complete my 4 year bachelor degree in 6 year. Also I am in pressure to find job as soon as possible after. Because till this day, I'm unemployed.

Got really really frustrated and wiped out those entire resources took a break from this chaos, returned to do everything from ground zero, made my mindset that I will start with data science as my dream career where I thought of web dev in past but again my friends who were far ahead of me starting learning GO-lang and they encouraged me I should look at go-lang even did so it was easy for me, I was having fun. Again frustrated should I go with golang because its golang or what happened to data science or what happened to web dev. wtf what happened what.

(This is it. Every word of it is troubling me, killing me inside. Sorry for my terrible writing. I'm not a native English speaker and have no experience in writing.)

Posted on by:

Discussion

markdown guide
 

The solution is simple.

Ignore literally everything people have ever told you to learn, pick one programming language that looks interesting, and Google for its official tutorial.

Can't decide? Then just write all of the languages you're considering on slips of paper, put 'em in a hat, and draw one.

Above all, just learn a language. Popularity be darned.

 

This.

Also, once you decide on a language, do a project you're actually interested in. Todo apps are the new "Hello, world" - nice for learning the basics, but won't take you very deep into a language by themselves (they typically cover language syntax, but very little in the way of built in classes/functions).

As an example, when I first learned JavaScript, I did so by following some tutorials on basic stuff, then dove into re-creating an old NES game (Dragon Warrior). No libraries, no frameworks, just what was available in plain old vanilla JavaScript.

 

These! and just stick to one source until you reach a good level. It'll help you to don't go around the same things all time, it'll give you focus.

 

Go might be a good choice, but if you want to get into it, just stick to it even if something else comes along. But going deeper with Python is a great choice and you can pick up other stuff along the way.

I think, regardless of all of this you might be served to start a project you plan to stick with. Something you might want to see in the world. This will bring context and structure to your learning. If you have goals in mind that are separate from the specific tech, you'll have a better time discerning the options and making progress.

 

Can you recommend resources for going deeper with python?

 
 

Languages are tools. Pick a language that interests you, and learn it. Use it. Become familiar with it.

If no particular language interests you, but you want to learn a language, I recommend Python. Or one from the "top 50" on TIOBE chart.

Go is on the top 50. It is an interesting language that poses the question "If we could start over, and using new modern techniques, how could we make a better C?" It's a serious language with some very smart people working on it. It should be a much easier to learn language than C, given its charter.

I first learned BASIC. Then 6502 assembly. Followed in turn with Pascal, FORTRAN, 68000 assembly, Scheme, 8086 assembly, LISP, Prolog, C, Perl, C++, SQL, Objective-C, Python, D, ExtendScript, Java, Lua, C#, JavaScript, TypeScript, ActionScript, C#, Swift, F#, C++11.

And I'm still learning. I try to learn a new language every year. Some languages I've learned very deeply, others I've satisfied my own interest that I have a very good grasp of the language.

I'm not including any language on the list that I haven't used for at least 1000 hours, so my gloss level of knowledge of Go, Kotlin, Rust, VB, Ruby, MATLAB, Dart, Ada, Scala, Haskell, Clojure, Erlang, Eiffel, Groovy, Boo, et cetera... not on my list. I don't have a "very good grasp" of those languages. Merely a passing acquaintance.

Learning multiple languages teaches you new concepts and approaches. It helps avoid the Blub Paradox.

 

You're being too hard on yourself. Just breathe. Seriously, breathe deep. Software engineering and development is a really broad subject, if you focus on what you haven't learned you'll fail to see that you've probably learned a lot over the past couple of years.

To be honest, I am in a similar situation to yours. It's difficult, I know. I did mostly back end development before and now I am working on learning front end. It's easy to get overwhelmed by all the choices. Just pick a language and stick with it for a good amount of time. Get to know it well. You don't need to know everything about that language. Just make sure you are really comfortable working with it. You're still going to have to look things up when you know the language well, we all do. Not many people can hold so much information in their head that they can code flawlessly from memory so don't think that's what you need to be able to do.

By picking one language and getting to know it well you'll be able to pick up other languages easier later and you won't feel so overwhelmed.

One last point. Since you are still a student you're probably going to feel very overwhelmed the first time you sit down and look at a production code base. That's normal. I still remember my first time looking at mature production code, it was terrifying. In school and personal projects my code rarely ran more than 1000 lines, the first place I worked had methods longer than that and the main class was somewhere in the neighborhood of 55,000 lines of spaghetti code (needless to say, the code was infested with bugs). Before I got familiar with the code base I felt like I was the village idiot but after a while I adjusted to it, got comfortable and refactored bits and pieces of that code in my time there. Don't get discouraged by the challenges, embrace them...when you are feeling the most challenged is probably when you are growing the most.

 

If you're just starting out learning to code, I think it is more important to get a solid foundation in computer science principles and patterns than it is to jump on the new 'sexy' trend. Trends will come and go, but if you have a solid foundation in computer science it will be a bit easier in the future to jump to the next new thing.

So, to echo what some of the others in the comments are saying: pick one language, pick a project that is a little more complicated than a to-do app that you can get passionate about, and start building!

 

If you only started coding in 2017, and but seems you switch technology, language and speciality constantly. While it is good to have some breadth of what's available out there, to get good at anything, there needs to be focus and practice, (and not chasing after every trend out there).

You can get a good career in any of those skills you listed, but for most jobs (especially entry level jobs), you really only use one or two of those skills. And most job interviews will only focus on the skills set they want, and not every skill.

If you dive into Go-lang because your friends told you to check it out probably isn't the best practice.

Trends come and go, but data science, web development, and go-lang (which is actually better suited for system programming, so is that something you want to do?) will not go away. Within each of those things, there are so many tool and languages, pick one or two you like most, and stay focused, ignore other noise, and then you'll get job in that area.

Go deep before go broad.

 

Going deep is a skill and the practice will help you go broad with purpose as well.

 

The though process you're going through is the right one, and the anxiety can be common in the industry.

Since you're about to start your career my advice is that your first couple jobs will shape what you'll do in the following years. Don't try to nail the right job at first, but it will definitely helps to tell you what you like and don't. After that you'll be able to know what to look for.

After the first few years on a decent job you'll have learned much more than you possibly can in a shitty one doing hobby learning.

 

To be honest it sounds like you're comparing yourself to experienced programmers and expecting yourself to be an expert in a few months. Everyone's first steps will be exploring possibilities, finding a branche/direction/language in which you'll feel comfortable and just simply messing around. Let something grasp you, and go for it. If it doesn't, so be it, if it does, stick to it. Be patient & keep control. :)

If you notice you're "obsessing" over this subject (which you are), take some time doing something completely different. Fancy cooking, reading philosophy, working out, anything to clear your mind for a while.

 

I would recommend that you start with a task. A reasonably modest task, but a task.

  • a web page (or simple web app)
  • a native app for a mobile device
  • a web spider
  • a program that interfaces with an internet-connected light, turning it on at sundown and off at midnight
  • something that solves Sudoku or another puzzle game for you

Each of these is going to work differently. Honestly, you could probably do most if not all of these with Node/Javascript, but they're going to work differently depending on what you need done.

When you get to a point of added complexity, choose the most easily understood decision and go forward, until it is painfully clear you need to change.

My first "big" solo "project" was for the campus computing center as a CS undergrad, around 1998. I was in charge of the documentation library, and I put it up on the web. I was encouraged to use flat files for data storage, rather than dive into learning SQL, because I was already trying to force so much into my head already. This was both a learning experience and of practical use for me.

I don't know you, and I don't know what you need, but if you can find a problem with a technical solution and create that solution, you will be well on your way.

 

Just take it easy , you are doing good .
You are doing good because you are concerned about learning other things than what's given in your syllabus and you are taking efforts to do those things !!! Believe me , it puts you ahead of the race. But maybe you are being too hard on yourself, trying to learn everything that's 'trending' or 'cool' in the market.
First, learn the fundamentals. e.g. learn JavaScript properly(understand scope, closure, object, this keyword, promises, prototypal inheritance, etc.) then go for some 'cool' framework. It is not that you will have to study some framework right away because your job depends on it, you've got time, use it properly.
Whichever course/tutorial you choose, complete it then go for other things ( or follow my way - make a list of concepts in the technology you want to learn and use multiple resources from internet to learn those things, one thing at a time, believe me it helps). Don't go for 'Go' just because cool kids are running behind it.
I'll suggest you to concentrate on Data structures and algorithms and practice problems because you've got placements next year. As a fresher they won't expect you to be expert in any specific technology. C/C++/Java concepts and DS+Algo. will do the job (it is based on my experience here in India).
If you want them to put you in specific technology, have some side projects to show.
P.S. It's been six months at my first job and I'm regretting that I didn't study anything other than what was given in our curriculum. Not that I'm having hard time coping up with all these new technologies used in industrial projects, it is just that it could've helped. And as a fresher they give you enough training and time to learn, so don't worry.
All the best :)

 

thank you everyone for your comments regarding this.❤

 

Abisekh,

I agree with basically everything my fellow dev.to members have said:

  • be gentle with yourself. Programming is a big topic and you'll never learn everything about everything.
  • pick a project that interests you and learn whatever's required to finish it
  • be smart about how you learn (see below)

Because you have to do so much learning to be a successful software developer, it's well worth your time to learn how to learn:

 

Some people have good advise. You should also ask yourself what do you want to do. It's look like you want to do some data science. Then look for one language (Python seems to be a good candidate) then if you want first to learn some basics try to make a simple program, like a scrabble or how to implement "the game of life". This will help a lot to understand some keys like the classes, the variables, and if you use any the libraries ... then you can start to add mor features like saving your data (from a scrabble game for ex) in a file, this will help you to learn how to acces files. And try to optimize your work)
And then you will feel ready to start data science.

For me the first step is to create a program that you can show and explain how it works to someone.

 

Think of coding as a hobby. Ask yourself what is the fun thing you want to create. A game? A web service? A robot? A gadget? A simulation? Once you have a fun goal, then use Google to find out how other people create that goal. (If it's a game, I recommend Unity 3D).
I decided to learn code back in 1981, on the ZX81. I was 8 and I wanted to make a game, so I learned basic. I made games for years, as a hobby. The early ones were terrible, as you might imagine. Now I have a career in coding videogames.

Get good at your hobby and someone will pay you to do it. Pay YOU to do YOUR hobby!!

Good luck

 

This same thing happened to me. I started learning late 2016 and for a year, I was having the same problem as you. I was stuck and kept going round in circles till I got tired of everything and decided to truly learn and stay at it and avoid all distractions.
I can honestly say what I have learnt in the past four months has been more effective than the past year I was stalling. And one more thing, most times it is caused by being stuck in a tutorial rut, I'd advise you to try making few projects on your own, it helps a lot.

I wrote about it here: A New Ending

 

Looks like you got a lot of great advice. Your post inspired me to write a response: (dev.to/stevezieglerva/you-dont-hav...). Hope it helps.

 

Don't be upset, try to start to do specific things/tasks/applications. You will see that a lot of knowledges learned until now are useful.