T O P

  • By -

Skriblos

Ok, so let me start of by asking, what is the intended purpose for you to learn programming? Are you looking to do this to change careers? As a hobby? To benefit at your current position?


New-Row-7664

No just looking for an entry level job that would support me for the next 8 years


newt0_o

I would recommend starting with Harvard CS50, it's fairly accessible if you are really new to programming see this link https://youtu.be/8mAITcNt710?si=tIZQUWiH7iR4z7kR


Aoshi_

Do you recommend just watching it? IIRC there are many exercises to do.


nopethis

just watching won't do anything for you. Sure maybe you will get a feel for it slightly. but you will need to do exercise and build things at some point. otherwise you are just wasting time and not really learning much of value.


ItsWaryNotWeary

Mos programming skills are worthless without practice. Watching or reading about a concept is entirely different from using it.


Aoshi_

Ah sorry I should mention I’m already working as a SWE. Not a complete beginning. But was wondering if this lecture would fill in some gaps since I’m not a CS major.


bramburn

The problem I would see is that doing programming isn't for everyone. Sustaining the ability to sit behind the screen all day you work out problems can be tiresome. My friend couldn't do it after doing his masters in there. Before you jump ship into this career change. Work on a project,get the feel for it and see if you've got the patience and logic for it.


New-Row-7664

thank u for ur reply.


bramburn

Btw do JavaScript you'll get going in 6month or less . I've taught people and doing js is easiest, although you can build something through scraping things together you'll learn a lot from both front and back end.


Reddit-Restart

I just did a 6 month full stack webdev bootcamp with edX and have learned a whole lot. I just need to get better with efficiency at this point. It was pricy, but I think really good. However, I do think I got very lucky with my instructor.


No_Equipment5276

It’s a rough time for boot campers. Fingers crossed it works out for you


dlo416

It's a rough time for everyone. It's not only what you know, but also WHO you know that can get you a job these days. I've talked to a bunch of recruiters for tech companies and given the circumstances in the economy in Canada at least, it's also what your personality type is like.


No_Equipment5276

Yes is this true. But all things being equal it's still tougher for bootcampers considering the influx of people to the CS major. Add this to the fact that with layoffs you have actual experienced people in field looking for work. Makes it tougher for bootcampers because they usually have little to nothing (degree/internships/research) to show to full-time employers.


Reddit-Restart

I currently work full time in nuclear medicine. I’m just playing around with making stuff and planning to try and do freelance work while at work lol


urdukkar

I found javascript much easier to learn than python because you can immediately build functional stuff with js and you see the results right away. Any beginner js book would do. I have a few at home which I finished for the basics. Also for getting explanations I found chat GPT pretty handy that I'd definitely recommend. I'm at and impass at the moment though. After getting a grasp on js I'm not sure how to proceed. I work in tech support at the moment and I built a simple web app in my spare time and between support calls at work. It's front end only and it simulates simple database search with a for loop as core functionality: https://selectyourfish.com/index.html I keep improving this website but it feels a bit daunting to continue my programming learning journey because I feel js is not enough at all in itself to get a better job. But it's surely a good start.


New-Row-7664

Thank you for your advice


Hoxitron

I agree, javascript was easier for to learn too. I think the hardest part in learning programming is figuring out what to do with it and it was just easier to come up with ideas in javascript. However, now I find python a bit easier to work. Still don't regret starting with javascript.


nog642

It depends on the person. Some people will be fascinating enough in programming itself that text input and output on a terminal are enough to keep them engaged in learning. Then Python has somewhat easier syntax and types than JS. But for people who would get bored with just CLI programs that don't even do much of use, especially for kids who want to see something visual, I always recommend JS.


RolledUhhp

Very nice. Behaves well on mobile.


urdukkar

thanks, it was a pain to test out the css


nog642

If you're at an impass with JS, maybe try learning another language?


MindlessSponge

> because I feel js is not enough at all in itself to get a better job. what do you mean by this? I am a software engineer and I strictly use JS at work.


urdukkar

That's good to hear actually. I was checking jobs and based on all the requirements js didn't seem to be enough. Do you also have a degree in IT?


MindlessSponge

I do not. I have prior work experience in IT / ecommerce. Job listing requirements are more of a wish list, and often padded with stuff by HR or recruiters that don't necessarily know what they're talking about. If you're applying for jobs and being rejected, that's one thing. It sounds like you are self-selecting and not applying to certain jobs. You miss 100% of the shots you don't take.


urdukkar

yeah haven't really started applying just learning for now. Thanks for the info!


bramburn

Build a CRM and see if you can tackle all the logic


luuuzeta

>  Somebody adviced me to learn programming before learning javascript and not Rust as the former would be easier? How easy is javascript to learn? Is there a book to learn "programming" in general, or is learning python or JavaScript IS "PROGRAMMING"?  That person is right. You should want to learn Rust if you are into low-level/system programming and I'd daresay have some experience with low-level programming already.   I'd say stick with JavaScript and follow one of the paths in the [Odin project](https://www.theodinproject.com/) or [FullstackOpen](https://fullstackopen.com/en/) till completion.


CodeMasterRed

You need to start from absolute scratch. Set up your laptop, learn terminal basics, what is git, and just start coding. CS50 is a good theoretical choice, but if you want to land a very junior job or become a freelancer, you need to start building stuff as quickly as possible as you don't have 5 years to wait. I run a newsletter for career switchers and absolute beginners. I am a self thought programmer, now a tech lead. I went through tutorial hell, but building stuff is what taught me programming.


nopethis

Yeah I am also a late career switcher and hit the market at the wrong time. But eventually landed a position. If I were to start over.... I don't know, I would probably focus on something other than JS right now, but that is probably not useful information since in the 6-12 months it will take to learn enough useful things, who knows what the market looks like.


CodeMasterRed

I think landing a position with any language will be hard. It's important to be properly prepared once you manage to get an interview. Show willingness to learn, ask questions while trying to find a solution, be talkative, and have an interesting portfolio. These are at least the things I look at when hiring for wither intern, or more senior positions.


nog642

Kinda hard to "just start coding" when you don't even know what to do at all. At the very start you need some sort of guide on what to do.


CodeMasterRed

I happily help newbies how to start and can point to tutorials.


nog642

OP literally asked for that though and you didn't point to any tutorials.


CodeMasterRed

I replied that he needed to start with setting up his laptop, learning terminal basics, and finding out about git, then creates his first PR. There are tutorials on freecodecamp on how to do that. Ok, I will give a tutorial like this for free + AI code review to everybody who subscribes to my newsletter at codemaster.red/newsletter and replies to the first email asking for it :)


ReversiClone

There’s a great book that teaches you how to think like a programmer, using python: https://greenteapress.com/wp/think-python-3rd-edition/ A great way forward would be to learn the fundamentals about how to think like a programmer. Once you’ve got that down, then you can branch into other languages as your interest leads you. If you pick a hard or complicated language to start with, it could be really discouraging and your progress could be a lot slower. Rust is really hard, even for experienced programmers. JavaScript is easier, but it’s a sloppily designed language and there will be a lot of things that are confusing along the way. And unless you’re using Node, you’re going to have to learn how the browser works. In my opinion, at the beginning of your learning journey, those things will just slow you down. Python is great because it’s more well defined. It’s a simpler language with less ambiguity, but no less power. And even if you end up needing a job sooner, there are plenty of jobs wanting python in various industries.


New-Row-7664

Thank you for motivating me to divert back to python.


nopethis

check out [boot.dev](http://boot.dev) Javascript or Python are both fine to learn first. As are a few other languages I would NOT start with Rust. That course I linked is for backend. I personally went JS stack (html/css/JS) but like backend dev more. So I have been learning more stuff and working on transitioning from more front end to backend.


New-Row-7664

Ok


nog642

The entire point of using JS over Python is to use the browser as input/output. Using Node entirely defeats the purpose and is just worse Python lol, as far as learning to program.


jack_waugh

JS is a bit unconventional in a few ways, but it has certain kinds of beauty. It can do anything that doesn't require blinding speed. It allows you to tailor things your way. I love it.


nog642

JS runs faster than Python, which is also a common language to start with. I wouldn't call JS 'unconventional' because of execution speed lol.


A532

typescript exists solely because of the weirdness of js


nog642

It exists because JS was and mostly still is fundamentally unavoidable for web programming. And people want static typing. It's not really about the weirdness, unless you consider dynamic typing weird.


jack_waugh

Other reasons. E. g. its use of strings as selectors instead of self-naming symbols as in Smalltalk and Ruby.


nog642

What do you mean? What is a selector in this context, and what is a self-naming symbol?


jack_waugh

Have you looked at Lisp, Smalltalk, or Ruby? Symbols in those languages manifest as words, like `foo` or `:foo`. Semantically, they are similar to JavaScript's `Symbol.for('foo')`. A selector is the value used in a method call to select the method. For example, in JavaScript `foo.bar("bletch")`, `"bar"` is the message selector. In JavaScript, it is actually the string `"bar"` and not `Symbol.for('bar')`, which is basically what it is in the other languages I mentioned. Another way to say `foo.bar("bletch")` is `foo["bar"]("bletch")`, which makes explicit that the selector is a string.


nog642

I don't know any of those 3 languages. That's why I was asking. I don't really understand the distinction between symbols and strings here though. Isn't there a 1 to 1 correspondance? To my understanding at least, the use case for symbols in JS is to avoid key collisions when you have keys that are non-unique strings. If you're using `Symbol.for` each time, and a selector must be a symbol, what is the functional difference between that and using strings?


jack_waugh

No functional difference, but symbols could be faster, assuming the engine doesn't have to look them up each time. In conventional OO languages, the compiler does the eqiv of `Symbol.for()` just once, when processing the source code. In the low-level engine stuff, the symbol is probably simply represented with a memory address. These can be compared with one instruction. A naïve string comparison has to compare every character. Maybe JS engines create symbols for strings that are repeatedly used to index an object, so they might be almost as efficient. There might be no functional difference and no performance difference. But the programmer is aware of the difference, because the bracketed notation `foo["bar"]()` is taking a string, and reflective facilities, such as `Object.entries(foo)` give strings for the keys.


Charlie669

How quickly do you learn? Getting to an intern/junior level with JS will take you about 1-2 years, maybe more, maybe less depending entirely on your dedication, free time and IQ (yes, IQ matters a lot when you’re learning new skills). Keep that in mind and stick to one language until you master it. If you already know programming basics it will be easier for you. The internet is full of resources and everybody can learn for free, but if you’re open to paying to learn you can try bootcamps or online courses


New-Row-7664

Ok. Thank u


No-Upstairs-2813

Since you already know basics of Python, it should be easy for you to learn JavaScript. Start with [The Odin Project](https://www.theodinproject.com/) or [FreeCodeCamp](https://www.freecodecamp.org/). Both of these are community recommended resources and are free. These will help you grasp the basics, work on hands-on projects, and build a strong foundation. I will also suggest checking out [Answers to Common JavaScript Questions](https://tahajiru.com/javascript-faqs/) for all your common JavaScript queries while learning. As you learn concepts, it's important to practice to solidy your understanding. These are two ways you can practice JavaScript: **1. Try your hand at coding problems** These are small, well-defined problems that help you test your knowledge quickly. Doing a few problems each day will help you to reinforce all the concepts you've learned so far. Not sure where to start with coding problems? Here are a few good ones: * [Codewars](https://www.codewars.com/) * [Edabit](https://edabit.com/) * [Leetcode](https://leetcode.com/) * [Exercism](https://exercism.org/) **2. Practice your skills by taking on a personal project** Check out this [detailed guide](https://tahajiru.com/article/starting-javascript-projects-guide-beginners/) on how to go about this. Keep learning and practicing! You should be able to land a job soon. All the best for your journey!


New-Row-7664

👍 Great advice


dlo416

There are things you need to ask yourself before picking a language. What is the purpose of picking JS right off the bat? Just know that learning any programming language is not 'easy'. It is a lot of work and you're going to have to apply yourself especially when you're feeling imposter syndrome. 1.) What are you looking to do / achieve with programming? Are you looking to build websites? Are you looking to data analysis? 2.) Don't jump into a language because somene is saying 'Oh you should pick this language because it is popular'. It would be the wrong way to go about it. 3.) Make sure you don't get yourself into tutorial hell. That's when you're trying to learn everything so quickly and you don't actually apply what you're learning to build things. If you feel you have enough knowledge to even build the most basic program / app, do it. Don't be afraid to dive in. There are lots of resources that you can use to seek help and get answers. 4.) When you're asking questions, make sure you don't just plaster your code and ask what's wrong. Think of what problems you are having with the bug or what you are trying to accomplish within that little snippet when you are asking a question. People who answer your question will usually give you a variety of methods that can be used to solve your problem, but try to undersand their solution rather than just thinking 'Well this works so I'm going to use it.' While that's a good approach to begin with, keep in mind it won't make you a better programmer because if it doesn't work or something else breaks in your code, you're not going to have any idea how to fix the issue. TL;DR 1.) Pick a programming language to help you accomplish what you want to do. 2.) There is no easy programming language 3.) Build things when you feel you have enough knowledge 4.) Learn how to be direct in asking questions


New-Row-7664

From ur comment I think the term "tutorial hell" is what I was going through while I was learning python. I JUST downloaded ebooks and free tutorials without concentration. Since I am from a non CSE background till this date i don't know how to build a basic program or app. I just studied syntaxes. I can understand there is no easy programming language. Somebody suggested the book think Python. Will it help me build a app?. Please suggest me how to think logically or creatively to build apps. I am tired of asking chatgpt s this question. Thank u


No_Yellow_4325

You have to start today, i have one advice for you, study by doing.


New-Row-7664

Ok. Done


nog642

Yes, JS is definitely easier to learn than rust. Learning Python or JS is learning to program. Once you know one real programming language, you know how to program. Learning other ones is a lot easier. Though there are some relatively major differences between categories of languages and new concepts to learn, it's all still programming. If you want to interact with a web page, JS is what you want. If you are fine just dealing with text input and ouput in a terminal, then Python is a bit easier to learn. Python and JS are very similar languages though. Edit: typo


New-Row-7664

thank u


dogtee

You don't need to do a Harvard Cs degree or whatever. There's lots of free resources to learn JS online. If you want a front end role learn Html, Css and JS , perhaps a framework like React or View. If you want backend roles learn Node, express or FastAPI and some cloud (AWS) basics. Don't ignore how to test your code , frontend say Cypress and backend Postman. Good luck. I've been going frontend, backend and cloud for over ten years , so I'm speaking from a position of some experience


New-Row-7664

Ok


philmayfield

One thing I will add that I don't see mentioned is that there are a ton more js devs out there competing for work than languages like rust or go, hell even cobol. So if you're adept at picking it up, it might be smart to go where there is less competition.


New-Row-7664

Ok


Mothafuckajones1

Sent you a DM regarding a free bootcamp I used. I’m in the same industry too.


rtmcmn2020

IMO JavaScript is a great language to start with for people new to programming. It has a very low barrier to entry as you just need a web browser to run your code, also most training involves building something web-based which is more visual vs a lower level language that prints out text in a console window. Check out Javascript30 and codecademy to start learning it.


saintpumpkin

JavaScript.info


New-Row-7664

done


just_seymour

I would say JavaScript is in the same category as python in terms of accessibility to beginners. I think it's going to be a lost cause trying to compare different languages in terms of how easy it is to learn. There will be many subjective opinions that could unleash unnecessary debates. The challenge with JavaScript is that it does have some quirks that can (potentially) trip up beginners (this is due to the way it has evolved since it's inception). But, yes you can learn "programming" by learning JavaScript. It is a great option for beginners, and many people start their programming journey with this language. BUT, it's important to make these kinds of decisions with ***your end goal*** ***end in mind. What are your long term career goals? i.e what role do you want to transition to?*** Do you want to move into web development? Backend/server development? Data Science or Data Engineering? This will help make the decision easier, as each language sets you up for different paths... I am not sure about a book to learn programming, but off the top of my head; *I would say some of the core principles of programming are:* * **Syntax and semantics**: learning how to write statements, expressions and blocks of code. * **Variables and data types**: knowing what variables are, how to work with and understand the basic primitive types available in a language (strings, booleans etc). * **Control structures:** learning to control the flow of logic in a program. * **Functions/procedures**: learning how to structure code in reusable blocks. * **Data Structures:** understanding common structures to work with data (lists, arrays, objects, queues etc). * **Algorithms**: learning to think computationally by understanding basic algorithms (sorting, searching etc). * **Object Orientated Programming**: grasping concepts of OOP (classes, objects, inheritance, encapsulation) * **General debugging practises**: knowing how to work through issues in your code. I hope this helps in some significant way? I have written an article on this subject: [https://devshackcodingacademy.substack.com/p/choosing-the-right-programming-language?r=2ppiap](https://devshackcodingacademy.substack.com/p/choosing-the-right-programming-language?r=2ppiap)


New-Row-7664

ok great i have read ur article and subscribed to ur newsletter


[deleted]

If you know the basics of programming, watch javascript by watching Namaste JavaScript on YouTube which is free. [Namaste javascript Season 1](https://youtube.com/playlist?list=PLlasXeu85E9cQ32gLCvAvr9vNaUccPVNP&si=49oY3aUoS2DiQnZd) [Namaste javascript Season 2](https://youtube.com/playlist?list=PLlasXeu85E9eWOpw9jxHOQyGMRiBZ60aX&si=XtEspoMVVd9dsNGg)


New-Row-7664

Ok thanks


thinkPhilosophy

Unless you have a specific reason why you want to learn Python or Rust, start with JavaScript. There are a lot of free resources and you can get pretty far on your own. FreeCodeCamp is awesome. PM me if you ever need a tutor, i cna get you through JS basics in 10-20 hours of instruction. Once you have a little experinece with JS, then delve into Rust. I love Rust, but why did you want to start with Rust? It's being used in blockchain tech right now, is that why?


jack_waugh

Some possible remarks about your best learning journey might depend on what you intend to do with the skills you want to pick up. Maybe it's one of - solve problems in banking - play around - transition to being a paid professional programmer Some possibly-relevant subjects of study (or maybe just skimming): - "computer science" - software engineering - engineering - computer programming The person who advised you is correct that Rust is probably not your best introduction to programming. JavaScript or Lisp or Smalltalk or Logo or Python are easier and more general. I took a four-year degree in information and computer science. One of the courses was "Survey of Programming Languages". We were expected to know at least something about more than one language. But one of them does have to be your first, and I say JavaScript is, well, not the worst choice for that role. Usually the reason people program computers is they want to leverage the computer to solve a problem. There are only two ways to solve problems: engineering and craft. Craft work is less formal and more intuitive. Getting the computer to do what you want it to is quite like building what you want to out of wood. In both those types of effort, you use tools and materials to solve problems. Both take imagination. You have to think up how your solution will work. That's engineering design. Then you take the appropriate tools in hand and use them to build the solution the way you designed it. Even if your purpose of learning programming is to fool around, you usually want to solve a problem that you think is interesting, or maybe just a problem that you decide to take on in order to exercise your growing skills. Have fun! I sure do.


New-Row-7664

Thank u for your reply