DEV Community

benjamin.watson
benjamin.watson

Posted on

Yo, I'm going to become a Software Dev

Hey there!

I'd like to learn to code. I don't have any special talent, but I have a strong desire to change my life.

I see that a lot of people start with HTML/CSS, but some tell me that I should first start with the Fundamentals of Computer Science. Which path is the right one to take?

I don't have any illusions about "learn everything in 30 days or less", but in a year I want to be hired as a Software Dev. What would you say, is that real?

Top comments (15)

Collapse
 
shaijut profile image
Shaiju T • Edited

Some advice on becoming Full Stack Software Engineer.

If you are looking to learn to get a Job, Currently both Java and C# will help you get Job in MNC companies. Also Go language is coming up, i heard many startups are using it for making cloud native apps. You can do market research for both Java and C# in your area and then decide.

Java and C# has some common syntax style , so you can switch over each other easily.
I feel C# gives developer happiness and makes developer life easy because its easily maintainable for large projects and by providing tools like Visual Studio and VS Code its easy to code faster.

Don't be confused of choosing the best language, Just choose one after your research and start learning, if you don't like you can switch over other easily.

Full Stack Software Engineers who build web Apps are in demand.

Below is 11 step path to become Full Stack C# Software Engineer:

  1. HTML , CSS, Javascript - Do 3 simple Project, Push it to your Github

1.2 Learn Git and Github basics to Push projetcts to your Github

  1. Learn Basic SQL - Note down your Queries, Push it to your Github
  2. Learn C# - Do 3 simple Project, Push it to your Github
  3. Learn Asp.NET Core - A Web Framework to build Both UI and Backend in one go. Do 2 simple Project, Push it to your Github
  4. Learn Asp.Net Core Web API - A API Framework to build RESTFULL API's. Do 1 simple Project, Push it to your Github.
  5. Learn any JS framework like Angular or React , Do 2 simple Project , Push it to your Github.
  6. In between write 2 to 5 blogs on what you have learned.
  7. Create a simple readable resume, add all above skill set in resume, add 4 good projects you have created while learning in your resume, add link to your blog too, add linkedin profile.
  8. Start Applying for Job and be ready to take any small Job as beginner then move on from there.
  9. Be patient and learn, it takes time to learn, it may take minimum 3 months if done fulltime or 5 months.
  10. In interview be confident and if the interviewer asks do you have hands on experience ? Then explain them about the projects you have build along the way and say that you are confident to do the tasks.

Watch below video and the channel content - Learn all for FREE.

youtube.com/watch?v=RiKcSDbGVXw

2 Ways to build Web Apps in C#:

  1. Develop Web App using Asp.Net Core Only - Both UI and Backend

youtube.com/watch?v=C5cnZ-gZy2I

  1. Develop Asp.Net Core Web API and Consume it using JS frameworks like Angular or React
  • Asp.Net Core Web API - For Backend

  • Angular or React - For UI

youtube.com/watch?v=fom80TujpYQ
youtube.com/watch?v=NemyDIUcC64

That's Just basic CRUD based tutorials, Advanced projects based tutorials like a Ecommerce shop etc you can search online to learn more.

Hope this helps. 😄

Collapse
 
hmboyles profile image
holly boyles

Thanks for sharing! This list is very similar to course list in school. :)

Collapse
 
tominekan profile image
Tomi Adenekan

Depends on your path.
NOTE: All this is just my personal opinion.

For web dev, you have to learn basic HTML, CSS, and JavaScript. And then probably go on with a backend language (Ruby, Python, NodeJS), and a front-end framework (React, Angular, Vue).

For other things (CLI, Scripts, Automation) I recommend learning Python, as it is good at most things, but not great, except Data Science and ML, which it excels at.

For the lower level stuff, have a solid grip on programming concepts and then learn C/C++ and a bit of assembly (for operating systems).

Once you have a basic understanding of your chosen language, then you can start learning the fundamental algorithms and theories of computer science.For

I recommend starting off with Python because of its simplicity, and power (not speed). However it is up to you to decide the tools you want to use. 😀

Welcome to DEV and,
Happy Coding.

Collapse
 
benjamin123 profile image
benjamin.watson

What would you say about JS?

Collapse
 
tominekan profile image
Tomi Adenekan

If you want to do anything with the web (which is becoming more and more popular these days), JavaScript is a must. I feel like you must have a solid understanding of HTML and CSS before learning JavaScript. Be careful though, because JS is a framework and library heavy language, don't go into JS because of frameworks like React, Angular, or Vue.

Collapse
 
jenbutondevto profile image
Jen • Edited

If you're interested in developing for the web, then html/css is fundamental. JS should follow shortly after. then you can start learning "frameworks", like react, angular etc. The danger of learning react from the get-go, is firstly it only means you know how to code "react", and if you move to a company that uses angular, you might get lost.

If you are interested in front end, of course it is not limited to web. You can decide to be an iOS/android dev.

If you are aiming to be a software developer, learning CS fundamentals is not necessary, although it depends what you mean by fundamentals. Do you need to learn and understand logic? Yes. Do you need to spend a school term learning the ins-and-outs? nope!

In a year, possibly. It all depends if you have a natural "talent" for it and/or how hard you work for it. Luck could also be a factor. You might find an employer that sees your potential, and take you on, even though you skills might be lacking right now.

Good luck!

Collapse
 
giorgosk profile image
Giorgos Kontopoulos 👀 • Edited

It is definetelly doable, good for you.

I would personally NOT start with fundamentals of CS as they might be a lot of theory and turn you off but if you are into theory go ahead.

I would start from something more tangible that you can create something in the end of the exercise. Like hands on tutorials of the language(s) that you will decide. And when something is not clear jump to theory and fundamentals or documentation of the tool you are using.

HTML/CSS are good first dives into software development if you want to be a web developer (mostly) but if you are thinking about a different path find out what languages/frameworks are used nowadays on the particular field.

freecodecamp.org/ has lots of resources and study guides for you to start (I think this site it leans towards the web development field though).

Keep working on some projects/tutorials and each project might lead you to deepen your knowledge on something else mentioned or worked on follow that path if you are curious enough.

If you get stuck along the way post a message like you did now. The more specific the question the more people you will generally have posting trying to help.

Enjoy every step and you will do fine.

Collapse
 
bscott profile image
Brian Scott

I would start out with Go, Java, or Python first. I work in the Enterprise and the landscape is changing fast. Java is not what companies are looking for much anymore. Javascript is def a must. Rust is up and coming along with Deno.

Collapse
 
mellen profile image
Matt Ellen • Edited

I think you can either aim for a particular industry, e.g. pharma, finance, education, or you can aim for a type of work, e.g. phone apps, web sites, desktop apps, embeded.

You should have a look around where you live, or where you want to work, for developer job vacancies, especially entry level, to see what the market need is. That can help you make the decision of what your should learn about.

Web development is often a popular way to start because
a) it's easy to build a portfolio because of the free tools and hosting
b) there are lots of free online tutorials to get started
c) it's easier to pick up freelance work (I'd never call getting freelance work easy, but lots of people want web sites)

But it's not the only way to start.

You local community centre might offer programming courses, which would also help you make contacts.

From 0 to employed dev in a year is a hard slog, but you might do it.

Collapse
 
benjamin123 profile image
benjamin.watson

I thought I might stick to an online course. Doing some research on my options atm.

Collapse
 
silva96 profile image
Benjamín Silva

Yes you can, but take it as a full time job. Study / Practice (do projects) 8-10 hours a day, for a year and you can be hired as a junior dev. If possible, try to get a more seasoned dev as a mentor

Collapse
 
benjamin123 profile image
benjamin.watson

That's about 2.5k hours, right? Which language would you suggest to start?

Collapse
 
silva96 profile image
Benjamín Silva

Just my personal preference, Ruby on Rails, with stimulus.js and turbolinks in the frontend, it's a happy journey.

Javascript is a must, at least for frontend. Vue.js has a low easy learning courve

Collapse
 
bscott profile image
Brian Scott

I believe Frontend & Python or Go you can learn fairly quickly.

Collapse
 
benjamin123 profile image
benjamin.watson

Do you mean that for an "average joe" it's hardly possible?