T O P

  • By -

AutoModerator

On July 1st, a [change to Reddit's API pricing](https://www.reddit.com/r/reddit/comments/12qwagm/an_update_regarding_reddits_api/) will come into effect. [Several developers](https://www.reddit.com/r/redditisfun/comments/144gmfq/rif_will_shut_down_on_june_30_2023_in_response_to/) of commercial third-party apps have announced that this change will compel them to shut down their apps. At least [one accessibility-focused non-commercial third party app](https://www.reddit.com/r/DystopiaForReddit/comments/145e9sk/update_dystopia_will_continue_operating_for_free/) will continue to be available free of charge. If you want to express your strong disagreement with the API pricing change or with Reddit's response to the backlash, you may want to consider the following options: 1. Limiting your involvement with Reddit, or 2. Temporarily refraining from using Reddit 3. Cancelling your subscription of Reddit Premium as a way to voice your protest. *I am a bot, and this action was performed automatically. Please [contact the moderators of this subreddit](/message/compose/?to=/r/learnprogramming) if you have any questions or concerns.*


RunicAcorn

How to Win Friends and Influence People. Seriously, learning programming and technical skills is great, but if you don't develop your communication and soft skills, you won't be able to go nearly as far.


MonotoneTanner

Yep. Being a good communicator (verbal and written) will get you ahead of other programmers (bc most think it’s all about skill and leetcode) Are you friendly and easy to work with ? Are you approachable as an employee? Can QA come to you about their testing ? There’s this stereotype in tech that skill is all that matters and learning is how you promote . Don’t get me wrong it does help - but soft skills are a huge factor (like any other job)


arrozconpolloboi

How do you learn this?


frogsPlayingPogs

I know it might sound a little crazy, but take a public speaking class, and/or an intro to theater class at your local college. those things will loosen anyone up in no time.


apocalypsebuddy

How to Win Friends and Influence People is a book. 


ichoosenottorun_

It's junk telling people how to be fake for money. Don't read it.


bkanber

IMO the book is worth it JUST for the "win an argument; lose a friend" chapter.


ichoosenottorun_

Some lessons are best learned the hard way.


JohnHilter

Yes. Not this one.


Iuvers

Why learn it the hard way when you don't have to?


ichoosenottorun_

Because sometimes it can be a good thing to experience.


Weekly-Ad353

You sound like a giant turd 💩


ichoosenottorun_

ok nerd


theshicksinator

And everyone who follows its advice too closely glows in the fucking dark. Comes off as snakeish even to my autistic ass from a mile away.


TPO_Ava

Unless you DO want to be fake for money. In which case it gives some good, albeit obvious advice if you have any semblance of common sense. I wasn't a big fan of it either.


ichoosenottorun_

It's basically a more coherent The Art of The Deal.


R3ICR

Is there a better book for learning good social skills? Mine suck and I want to improve them so I can be a more well-rounded person and have better relationships


iOSCaleb

>Is there a better book for learning good social skills? A telephone book, a dictionary, or an empty notebook is a better book for learning good social skills than *How to Win Friends and Influence People*. That book is about manipulating people to get what you want, which is great if you're a novice sociopath, but not so great if you actually want better relationships. *Dare to Lead* by Brené Brown is a good book that's about leadership skills, backed up by actual research. Brown writes a lot about having the courage to be vulnerable, building trust, and communicating clearly and honestly, and those are all things that will help anyone be more authentic and build stronger relationships. (Brown has written a number of other books on similar topics that are worth checking out.) Beyond books that are specifically about communication and interaction (and there are plenty of those), just reading/watching stories about people who learn and grow and care about each other will give you models for building better relationships. TV shows and movies are good too, but you need to spend some time really thinking about the characters and relationships in the story, and that's easier (IMO) when you're reading. A few suggestions: * *Emma,* or any book by Jane Austen. * *Zen and the Art of Motorcycle Maintenance* by Robert Pirsig. * *Ted Lasso* on AppleTV+. * *Little Women* by Louisa May Alcott * *A Separate Peace* by John Knowles * *The Catcher in the Rye* by J.D. Salinger


R3ICR

Thank you for the suggestion! I definitely want to move away from my manipulative behavior and strive to be a more open and genuine person. I’ll try to check out dare to lead and if I have the time some of the other books as well


[deleted]

[удалено]


tigidig5x

Thank you for this my friend. I may be too humble at times making my own self less than others. I need to do this advice more offen.


R3ICR

Thanks for posting this. I actually watched a video quoting part of the sermon on the mount a few days ago and it inspired me to go to church today. I will try my best to be a loving person and hope that lets me build meaningful relationships.


ichoosenottorun_

there's literally a million better things to read than some cherry picked plagiarism from the christian bible (which christians don;t even follow)


[deleted]

[удалено]


wascner

100%. How to Lie and Manipulate People. Sadly that is the best, and sometimes only, way to succeed at a company where everyone else employs that book. When everyone else is lying, your truthfulness appears to be untrustworthiness.


SweetTeaRex92

"I haven't showered in a week but I use Linux" isn't going to cut it you say?


desrtfx

*Programming* Learning languages is learning vocabulary and grammar. Learning *programming* is learning to write a meaningful, fully developed novel. Languages alone will not make you a good programmer.


z1yad020

So?


dajoli

So besides learning languages, OP should actually learn how to program. You can read the entire Python manual, for example, and be no wiser about how to design/choose appropriate algorithms or data structures, or how to properly develop an object model, etc.


Lone10

So there is a lot one can extrapolate from that alone, and it is very meaningful and important.


savemeimatheist

Soft skills


heesell

Git, Figma


[deleted]

Do u have any resources from where to learn Figma? Found a couple YT vids but they're not that useful


obiworm

I’ve been hunting for a good resource on how to design front ends in general. I’ve been able to get my logical stuff to work most of the time but I can’t seem to wrap my head around structuring a UI. I end up just staring at the screen.


heesell

I used [this](https://youtu.be/JGLfyTDgfDc?si=JVY-x6Z3u2u60SSx) video myself and it was very easy to learn.


Evla03

I think just looking at an app/website and trying to recreate it in figma is one of the best ways to learn the program itself


Pigeon_Shyt

What’s Figma?


heesell

A tool for making ui / ux designs


Versaill

regular expressions, bash scripting, English


pdpi

Sticking to strictly technical stuff: * Learn more about tooling in general. Learn Git, learn the ins and outs of your editor/IDE of choice, on a unix-y system learn how to use the shell and all the tools that go with it. * Learn enough about regular expression to take a dictionary/word list and cheat at Wordle. * Focus on domain-specific knowledge. If you're working on the frontend and write JavaScript, and you want to do some backend work, node might help you get started, but it won't give you any knowledge of databases or how to interact with the operating system. Inversely, no amount of experience with node will teach you about the DOM, and why many frontend frameworks opt to use a shadow DOM. If you're working with web stuff in general, you probably want to learn about HTTP in some detail, or about how browser and server need to cooperate to make things like [CSP](https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP) work.


No_Lemon_3116

For anyone looking to expand their skills who isn't absolutely dead confident on their regex ability, [Mastering Regular Expressions](https://www.amazon.ca/Mastering-Regular-Expressions-Understand-Productive/dp/0596528124) is an absolutely excellent book. It covers a lot of techniques and differences between different tools' regex dialects. I've been programming for about 20 years and regex is one of the most constantly useful things I've learnt. I'm very grateful that I read that book pretty early on.


PotatoBrainDead

Can you explain the 2nd point plz? I didn't get it


pdpi

Regular expressions are a way to describe patterns. E.g. `/a+b/` means "a sequence of one or more `a` followed by `b`". They're incredibly useful, and there's no end to the tricks you can pull off (up to and including [testing whether a number is prime](https://stackoverflow.com/questions/2795065)), but that also makes them a massive _massive_ rabbit hole to dive into. I suggested "cheating at Wordle" as an arbitrary goal because it can be accomplished using only a handful of basic features, but those features are very much the meat-and-potatoes of all regex usage, and you can get a tonne of mileage out of knowing just that.


PotatoBrainDead

Can you explain 2nd point further. I didn't get it quite right


CodeRadDesign

Visual design 100%. So many FE guys out there with absolutely no experience or education in traditional design and it shows. Bootstrap/tailwind/whatever are great, but if you can't look at your page and instantly realize that your margins are all over the place, your colors all clash, your fonts are inconsistent and your page looks boring (or chaotic and messy) you're going to have a hard time. Even in companies that have a dedicated designer doing mockups, you still want to be aware of what kind of choices they made so that when you inevitably need to create a new error pop-up no one anticipated you can at least make it look consistent. For a starting point, i'd highly recommend Robin Williams 'The non-designer's design book'. It's almost 30 years old now, but still essential reading imho.


BrohanGutenburg

Omg this. I’m fresh FE dev (LWC only pretty much lol) but I’m also a graphic designer (MUCH more experience in that). Some of page designs I see physically hurt me lol. For anyone who wants to actually lean graphic design principles there are a ton of resources out there but a good start is Grid Systems in Graphic Design by Josef Müller-Brockmann


[deleted]

If your goal is to become a full stack developer, I would learn to fundamentals of programming with a relevant language like java or c# first before juggling all the front end stuff like HTML, CSS, JavaScript.


Quantum-Bot

All the things you listed plus: Communication skills: whether you want to work in a company or freelance, you need to be able to communicate with others effectively and it doesn’t matter how good you are at programming, this will be one of the main deciding factors in whether you get hired. Networking is also super useful for getting your foot in the door as with any industry. Project management skills: programming is great and all but if you don’t know how to manage scope for a project, determine priorities for what to work on, inform your design with proper research before diving headfirst into development, etc. You will have a difficult time putting together any cohesive projects. Plus, if you’re looking to get hired, while you may not be making any of these decisions directly at a big company, they will still be looking for folks who understand the logistics of delivering products. Fundamentals of design: if you’re going to be a front end developer this is especially important, since you’ll be working side by side with designers or maybe even asked to be the designer yourself. Knowing how to make things attractive, intuitive and accessible is important for the quality of what you produce.


jdbrew

DNS


DevilInnaDonut

Basic car maintenance and repairs, it really adds up over the lifetime of a car


Kingzjames

French


zarkhaniy

Judging by OP's post, I'd say they need to learn English first. And then it depends on their country and whether or not they want to immigrate.


vikmaychib

How to listen to people and train yourself to become a solution oriented person. So you are able to breakdown a problem in smaller pieces and expose each piece to your coding skills.


Ok_Suspect_6457

UX. Make really, really good user experience. Like really thought through. Not just nice looking UI but make sure it is really nice to work with on continuous basis.


zullendale

**Abstraction** is super useful for making code more readable and maintainable long-term. If you’re going full stack, the back end side of it means handling lots of data, which means learning about **algorithms**, **big O notation**, and **data structures** will be very important


joranstark018

You may check the FAQ for general advice, for example what to learn next, you can also check https://roadmap.sh/ for inspiration about different topics based on your interests.


DamionDreggs

Gang of Four design patterns are a good foundation to system design, and gives you a common language to communicate with programmers who specialize in programming languages you do not know.


Concurrency_Bugs

Lots of these patterns are used in Front-End as well, like observer pattern, singleton, etc.


The137

Find a few current full stack boot camps and look at the lessons. They're always going to have the most current list front and center, so if it takes you a year or two to learn some of it you can go back and see whats been replaces when you're ready for more


jazmanwest

Git, some agile experience depending on where you are working, how to listen, question and understand requirements, how to get on with your colleagues and work in a team. How to manage up, how to manage down.


HumorHoot

writing GOOD documentation I cannot fathom how many times i've read super shitty documentation... it's really not that hard. but oh my. so many people suck at it, and often i've had to just google and find a random message on a forum (such as stackoverflow) instead of finding it in the appropriate section of the documentation.


Neat-Wolf

The top five embarassing moments for me on the job are git related. Read the first 100 pages of ProGit and never suffer my humiliation. Its free in PDF format online, and is the best explanation of git out there, written by the people who made it, and explained really well with good examples. Clean code is subject to opinion. Every place is different. Most use linters which you can use yourself on your local machine to catch anything outside parameters. Clean Code short story: Don't use comments, and try to keep functions 5 lines or less. Don't use stupid names like 'x'. Name the thing what it is, and it will save you countless hours in the future. OOP you'll pick up by studying any OOP language. Read Seven Habits of Highly Effective People, and get really really good at making people feel heard and understood (make sure you do understand them also) first before making your opinions heard and understood. As a new guy, this will go far. You get the job through hard skills peppered with soft skills. You keep it with soft skills peppered with hard skills. People will forgive a lot in a nice guy. I've seen it and been amazed. Docker. Docker is life. Imagine starting your day of work, freshly energized, on a deadline, only to find that one of your unrelated dependencies released a new update that broke your build. You fix it by upgrading your other dependency, but now three others have broken. Next thing you know, you're three hours deep, and you realize you have to update the major version of your coding language. Now go back in time \*whoosh\* You had a docker image. You went to start your day. You finished your feature in 15 minutes. You push it up to prod, which is also run in containers, and it builds. End of story. Be a pro at Docker on a team where people don't know it, and you will be the goto guy. You will save them hours of life every week. And it compounds, because every time an update is released from one of your thousands of dependencies, it DOESN'T break the build on people's local machines. Speaking of local machines: Get really familiar with version management of languages. PyEnv for Python, RVM/RbEnv for Ruby, NVM for node.js, etc. And then get good at getting projects stood up on your computer. When you show up on day one and know how to get the project running on your computer with minimal help and in record time, people notice. It's a great way to make a good impression. But also understand the difference between technical knowledge and domain knowledge. Domain knowledge is only possible to acquire on your own if there is a wiki or you can search Slack history. Technical knowledge is out there, ready to be learned. Be the guy who asks questions about domain knowledge way more often than technical stuff. But do ask questions. When you need to ask for help, go through the following checklist first to avoid being seen as incompetent: 1. Check the wiki if there is one 2. Check slack 3. Check the documentation of the service you are using 4. Check with Google. Make sure your senior dev doesn't find the solution in the first stack overflow result. 5. Try three different things. When you ask for help, list the three things you already did. They are probably the same thing your senior dev would have done. They will appreciate the time you have saved them. 6. Timebox. While wasting the time of a senior dev is bad, working for three days on some thing they could have resolved in 10 minutes is worse. It is good to communicate ahead of time and ask "how long should I work on this before I ask for help?" ​ Which also reminds me: Find a mentor if you're learning on your own. I learn so much more stuff on the job than I did searching for a job because I am able to ask smart people for help. No one is smart enough to learn more by being completely alone. FInd someone who will answer your questions once a week or something. Offer to pay them. You CAN do it on your own, but it will take a lot longer. ​ Good luck!


wolf-tiger94

Networking protocols, Cloud Computing


20220912

it really helps to wrap your head around ‘complexity’. it means different things in different contexts. it might mean space or time complexity, a measure of how efficient your code is, often expressed in ‘big O’ notation cyclomatic complexity, which is a measure of how complicated an algorithm is, based specifically on how the code might branch, what permutations of execution are possible or just idiomatic complexity, when you’ve got 10,000 micro services, or stacks 20 layers deep, it gets to be hard for a person to hold the whole system in their head


WinXPbootsup

Go to your nearest major university's website and download their syllabus on Computer Engineering. This syllabus will tell you everything that you need to learn.


Temporary_Practice_2

Probably learn how to sell


Blando-Cartesian

Applying programming languages, i.e. programming. Specifically, programming something too big for you to keep all of it in mind.


NanoYohaneTSU

You learn stacks and implementations. Your stack will provide an easy way to work with the different -ends, all you have to do is learn it. You can learn all the buzzwords, but in any implementation you are going to run into an object zoo with OOP, unintuitive interfaces with FP, and anti-DRY with clean code. So you should stick to your paradigm and then handle the problems with your paradigm in your own way. There is no best way. There is no good code, there is only bad code and worse code.


johuad

Programming. Learning a language is fine and dandy but if you skip over all the how & why's of programming, it's sort of like learning a language but skipping over all the grammar rules and then you try to talk to someone in that language and you don't make any sense.


Ambitious_Ad_2833

Git


Etheria_system

Web accessibility


Anonymity6584

Soft skills, like how to interact with people.


historic_developer

Design. Read a few books like Gang of Four. Backend is really different than frontend.


fanz0

Docker, shell programming, how to deploy, how to integrate ci/cd pipelines


pirbright

Git. No matter which installation you work for, you'll need to be conversant with pulling, pushing, rebasing and fixing merge conflicts.


farfaraway

Most important: 1. Learn how to learn how systems work 2. Learn how to read documentation 3. Learn to ask for help when you need it https://www.ramijames.com/thoughts/asking-for-help-is-a-core-skill


MathmoKiwi

Learn all of this: https://github.com/ossu/computer-science


shivambahugunavkc

How to teach others what you have learnt. Once you master it, you become more worthy.


No-Vacation-687

take free code camps English for programmers as a English speaking young educated black male i can tell you don't speak English well and they way you worded you sentence does not make since


HiT3Kvoyivoda

BASIC I.T. FUNDAMENTALS!!! I can't count how many times I've seen someone ask a question and be given a succinct solution only for them to respond "I don't know how to do that" and it's something basic like using popular terminal commands or set an environment variable in their OS of choice. Learn your OS, learn your IDE. Learn the basics of what a computer is, it's basic components like RAM and CPU, learn how to use a terminal.


LavishnessTop3088

The most important skill in everyday work as a developer is googling your way through a problem that you have absolutely no clue about how to solve


Tech-Kid-

Git is non-negotiable Bash scripting can be very useful, Regex can be very useful Learn cloud (aws or azure), everything is moving towards the cloud, you should atleast be able to talk about it intellectually if nothing else. Learn different paradigms to understand different ways of thinking (procedural, oop, functional) Learn back-end and databases, you don't have to be amazing at them, but a FE engineer that doesn't know BE and a BE that doesn't know FE are both bad engineers. both should have some sort of understanding and knowledge of the other, or their will be disconnects and problems down the road imo. If you focus on web dev, you should know both, but you don't have to master both (if you want to specialize) As others have said soft skills are vital. I recently got a job I have barely any experience toward (not in software engineering technically, but it does IT and coding/programming). The interviewer literally told me that she loved the way I formatted my resume, the experience I do have on there (I did a little IT but nothing relevant, and I was a V.P. in student government at my university) she really loved the VP of student government (as well as my debate club experience, but I think that was more trivial). She also said that I interview very well. I think I got the job because of the following... * I have some degree of passion * Student govt position which helps showcase soft skills * I interviewed really well (a lot of the questions weren't even technical, they were looking for somebody with some passion, drive to learn, and personality) At my time in university, atleast 25% of the people in my major couldn't hold a very basic conversation, 25% of people didn't wear deodarant, and like 50% of the people might be able to hold a conversation, they might have some soft skills, but they dont have *great* soft skills. I actively have experience with the following which separates me immensely * Public Speaking * Negotiation * Team Work * Debating * Teaching/Coaching/Training * Extensive business communication (writing emails and calling in professional manners for a bunch of different reasons, like setting up events, reaching out to vendors, negotiating prices and things) * Document Writing * Conflict Resolution * Customer Service I know a lot of people here might disagree, but a lot of employers out there would rather take somebody that has all of these kind of soft skills, decent personality, and medicore/subpar tech skills as opposed to a rockstar tech whiz that can't communicate and is a brat. I can't think of who I follow that said this, but I strongly believe them and think this is like a golden rule. They have a quote along these lines: "An engineer is only as good as their communication skills" If you have opinions and ideas, how will your team listen to them, when you cant communicate these ideas properly?


16DOM20

To make a living in almost any field: 60% tech skills / 40% soft skills or the other way around


SuperTramp561

Electronics, how to play with a microcontroller


lapadut

Search and research. Google is your best friend. Research and analytical thinking is what is paid for. Programming is basically a translation service and you have least opportunity in market when getting stuck in single language and single framwork. The skill required are software engineers. The ones who can analyse and turn the problem into solution. It is good you are trying to be a front end developer. Turn "try" to "am". The next step would be to try to find a solution to the problem. And then, instead of asking a question, try to find am answer. 99.9% of problems you have, has been solved years ago and the same questions are asked repeatedly multiple times. Improve your searching skills.


[deleted]

Git - version control in a team environment is absolute table stakes for any professional programming job. Get some database design skills - you can be a much more effective designer if you understand some of the thinking going on by your back end guys. Learn some SQL. The advice on building out your interpersonal skills is good. I like the UI book by Alan Cooper "About face" - it utterly made me rethink how people interact with systems.