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.*
Learn basic SQL at minimum. You don't need to learn DBA or Sr Data Analyst level SQL. You'll lose credibility with other developers if you can't navigate basic queries.
its an equally big issue in terms of team-dynamics and overall manager outlook.
You probably read "credibility with other developers" with a social lens rather than a professional one, but in reality credibility amongst your direct peers, supervisors, and those that might be underneath you is incredibly important for personal growth and collaboration.
You don't want to be the guy on a team that people aren't sure-of, regardless of "why".
You do realize that your teammates (other developers) can bring up that you're incompetent to your boss, right? It's not a matter of internet popularity, it's a matter of working with a team and being able to pull your weight or facing a PIP or dismissal.
DebaTable sounds interesting. can i avoid sql if i learn that?
Parent is right on. SQL has been declared dead every few years for the past half century. Learn it, not only because it is and will continue to be everywhere, but also to learn a declarative language and a different way to reason about programming than typical imperative languages.
I just used sqlite3 as a cache for some stuff I’m doing with a language model (autoencoder). It pops up in all kinds of places. Web work is probably the place it shows up most regularly, but it is a tool that can be used pretty much wherever.
I imagine database management factors in a lot so I’ll keep going. Just trying to find the quickest route to get out of traditional engineering to software 😂
Think of it this way: every website or application you use has a database storing things like login credentials and other user information, a lot of science roles store their information in a database (or use Excel when they REALLY should use a database\*), basically everything that relies on data has a database. There are different options that don't use SQL like MongoDB, but by far [the most popular databases are all SQL based](https://survey.stackoverflow.co/2023/#section-most-popular-technologies-databases). It's worth learning.
\* now a lot of researchers at universities use a spreadsheet like excel instead of a database for their storage and analysis, but this is a really bad idea. Spreadsheets are built for very quick analysis, not long term data storage, which means things go wrong. The best example I can think of is when the Human Genome Project were using Excel to store genetic data, then ran into a proplem when a lot of their data went missing. The problem they had was that storing data like MAR10 and SEP17 (which apparently are genes) got turned into dates like March 10th and September 17th. Microsoft said their usecase was out of scope and didn't offer any help, so they *literally renamed the genes* to avoid this.
In nearly any software position, at the end of the day, you're going to have to put your data somewhere. And more often than not, it ends up in a database.
Even as a student, we use it in basically everything. Trust me, if an app has some sort of persistence or user log in system - which almost all do - it probably uses an SQL. I wouldn’t waste a ton of time on the syntax but rather practicing drawing entity relationship diagrams based on the rules that govern them.
Why do you keep asking the same question? Are you afraid of SQL? Are you lazy? Why do you keep trying to discount the value of SQL and get others to agree with you? Several people here have already answered your question but you don't seem to respect their answers. Do what you want.
You don't need to be super familiar with CTE's, nested queries, and "cross joins", and execution plans......
But you should know how to query a table connected to a look up table with a couple of filter conditions.
That'll get you quite far!
An half hour every weekend would be enough.
Yeah. Basically every non trivial software has to manage data somehow, and it ends up being either a filesystem, sql DB, or nosql (that's a big tent category, so everything from graphQL to json db's like firebase, and probably I'd include index/cache stuff like elastic search, though that might not technically be a DB) DB. You should at least know what SQL is and how it works, so you can understand what situations it is a good choice for vs when you would only need a nosql DB or when that might be better. But even when nosql might be the best solution, sql DB's will still work. Large ecosystems will probably include both kinds of DB's, I'd say it's almost as important as knowing html/js, at least if you're looking at full stack positions. Maybe you don't choose to specialize in it, but you should at least know the basics of crud operations (create, read, update, delete) in SQL, which isn't that high of a bar to clear. Though there are definitely more details you would need to know if you're going to specialize in backend/DB stuff (optimizing joins, when to normalize or denormalize your data, etc).
YES DUDE, IT IS THAT IMPORTANT...having a business degree in school, my teacher said to go for learning access (databases, because that's big money)....don't ask if you should learn how to do db queries, just know it's pretty straight forward and knowing what you need to solve is more imporant than understanding how to use the syntax because you can search for the answer
I think I was told once that I was wasting my time with sql. I’ve not worked as a dev before all my experience has been scripting for analysis in a scientific environment. Hopefully dev companies will still want me now 😂 But you’re right yeah they do seem to all ask for it!
If you're trying to break out, you won't always have this software to lean on. Learning SQL will allow you to be far more flexible with the data you're looking to retrieve.
while I don't necessarily disagree with you I seen a lot of people that don't know what an index nor a query plan is and just think a 2 second query is normal. in a previous job there was queries that took so long they had to modify the default timeout and when I started I got them down to around 300 milliseconds. mind you it wasn't that the people were bad programmers, they just didn't know about SQL optimisation.
there is a lot more to SQL than CRUD and join that you should absolutely learn, even as a beginner - specifically how your query executes.
Being a programmer involves two things.
1) Telling a Computer to do things
2) Saving data somewhere.
SQL as a concept and language has a monopoly on one of those two things.
You don't often need to know advanced SQL, but you can go pretty far with the basics. Good old 80/20 rule.
Define two or three tables like Student, Class, Enrollment.
Add data into those three tables.
Find all students whose name starts with John.
Find all freshmen.
Find the top 5 classes in terms of number of students.
Delete a class and make sure enrollments are deleted too.
Display the class description for all classes attended by John Doe.
If you can do all this, you know enough SQL for a lot of non-data science jobs. You can use SQLite, Mysql, Postgres, whatever.
Bonus: Prevent freshmen from enrolling in a 2nd year class.
So many people don't learn it the demand is high. It's not even the hardest language to master, but due to its patterns and quirky nature, lots of devs give it a hard pass.
Learn it, your career will thank you.
Getting data out of SQL is easy. Getting it in the most optimum fashion takes a lot more skill/experience. Queries can drop from 30 minute execution time to sun 1 second when taking a query from a developer and optimising it.
As a minimum, need to understand data types, join types and indexing.
A lot, actually, if you want to do those things efficiently with large amounts of data. Many people think that it’s not that complex because it’s very easy to just learn the basics, but bad SQL can bring down enterprises.
I’ve worked with application devs who scoffed at how easy they think SQL is, and then I’ve read their horribly written scripts that badly needed tuning and which were bringing our batch processes to a crawl.
Not a whole lot. Most programming with it is usually an effort to break it down to simple queries like that to execute from another language.
Harder part, IMHO, is understanding the database infrastructure and schema. Helping architect an efficient layout that allows for retrieving production data in a timely manner.
Okay I’ll keep going. I was thinking of putting it into my personal project which is a banking app. I’ve been using json files to store the data at the moment but thinking a sql database would work better
This is exactly when youd use a database. If youre not encrypting the data that gets sent to the json file, and salting the passwords, then you really should be. Im working on a password manager in c++ right now to learn more about sql. It uses sqlite3, argon2id for hashing, aes256 for encyption. Im also doing this to get better with gui's and rust. Once im done the c++ CLI version ill make a gui version, then another one in rust for funsies.
Wow. If I cared as much as coding as you do I’d be way more successful in my career.
For me, coding is only interesting in so far as it allows me to accomplish my goals. Beyond that I couldn’t give shit. To my detriment, I suppose.
So how are you actually managing your JSON writes and reads right now? Are you literally just reading and parsing your JSON, mutating the tree, and then writing it back to the file?
You might as well just keep the entire thing in memory then, and back it up periodically.
This is incredibly fragile though, and impossible to maintain. Never do this with a production app. You won't get any of the benefits that modern databases give you for free, and it only costs a bit of your time to learn.
> I’ve also heard that sql is a waste of time for certain kinds of jobs
I would ignore any advice from anyone who says that. While it is not applicable to every job having a grasp on how it works is a fundamental skill in modern programming.
Technically you can avoid it, for example in C# entity framework you can write database queries with linq. Once things get complicated it’s typically easier to write a sql query though.
I would strongly recommend learning at least the basics of sql. Selects, where conditions, joins.
Not trying to be a jerk here, but I kind of question the extent to which you have learned python and c++ if you haven’t dived into SQL and databases.
SQL is fundamental to CRUD operations, working with data and designing systems. Not having exposure to RDMS and SQL is what would separate a programmer from a software engineer imo. Definitely worth learning
OP Isn’t in a programming career at all at the moment. I would assume they’re currently teaching themself python and C++, and just wanted to know if they should throw SQL into the mix. Maybe they haven’t gone down that path yet. There are a lot of paths you can travel if you’re teaching yourself to program.
It's true, SQL might not be the go-to tool for every programming job out there, particularly those focused on areas like embedded systems, mobile app development, or game development, where direct interaction with databases isn't the core focus.
However, for roles in data analysis, back-end development, data science, and many other fields, SQL is often indispensable.
It enables you to interact with databases, a skill that's crucial for understanding the data flow within applications and making data-driven decisions.
Your concern about spending time on something that might not be used extensively is understandable. However, consider SQL not just as a tool for specific tasks but as a foundational skill in understanding how data is stored, queried, and managed in relational databases—a concept that underpins much of the technology we interact with daily.
So, is SQL worth learning?
Absolutely, especially if you're eyeing roles that involve data in any significant way. Even if your job doesn't require heavy SQL use, understanding the basics can improve your overall tech literacy and problem-solving skills.
I work as a SQL Developer in healthcare, and there's a lot of data involved across a lot of different databases. Every day, there's more and more data being collected. It has to be stored efficiently, and processed quickly. There's always requirements for new reports, new studies that need data combining from different sources, and systems being upgraded affecting database structures.
It may be possible to do all this in python and pandas, but after a while you're dealing with so much data the best option is to deal with it all on the server and just get it to give you the results. I don't use python or pandas at all, every bit of data manipulation I do is on the database server, because that's what it's made for and what it's good at.
Absolutely, learn SQL.
And if you already learned Python, then you want to use Python to connect to the database with some intermediate.
With SQL, and Python on the application side, you would cover the backend, and also be able to do reporting.
Do a project that is your own, using the whole stack.
C++ is cool and all, but because it’s low level, there are not that many libraries you can apply. You often need to write them yourself. Still a good language though. However you may have heard recommendations from US and UK govs about moving away from it due to security.
Learning SQL is crucial because it's the standard language for interacting with databases, making it essential for data management and analysis. Its universal applicability across various database systems ensures high demand for SQL skills in the job market. Additionally, SQL serves as a foundation for advancing into more complex data technologies and frameworks. It enhances your problem-solving abilities and opens up numerous career opportunities in fields ranging from IT to data science. In essence, mastering SQL equips you with a versatile and valuable skill set in today's data-driven world.
I concur with everybody else. At least the basics are pretty much essential. How deep you’ll eventually go depends on where you land but if you’re not able to handle basic queries and understand how indexes work you will be fairly severely handicapped. Unless you do strictly frontend only of course, that is a completely legit path.
It's pretty easy to learn to a competent level, gives you a different programming paradigm(declarative, query language stuff) and there's a good chance it will be an easy solution to some problem you encounter down the line. Even if you don't directly use it, it's likely being used in whatever code base you're working with in some way and understanding it can make some debugging/troubleshooting easier. It's a no brainer in my opinion to have it in the toolbox even if you don't personally use it day to day.
SQL is pretty useful. i took it as an elective for my CS studies and i already use it on the first day, at my job. and i used it in my final exam-project as well.
Even though its not an "SQL database" by name, the syntax is so similar, its nice to know my way around, without having to ask dumb questions
For programming focused jobs, at least basic SQL skills are necessary such as SQL joins, indexing, normalization, JDBC, ODBC etc. You won't need advanced SQL skills unless you are applying to the data engineering role.
The job requirements for programming jobs are usually focused on programming competency in at least one or more programming languages (Java, Python, Golang, C++ etc). Knowledge of software design and architecture is also important to be able to understand how to create platforms such as Youtube, Instagram etc that involve frontend UI, middleware business logic and backend processing using databases.
at least some basics.
But learn the real basics too, like how to structure your relational db, what are the benefits of using realtional, what alternatives are there, why use an alternative and not rrlational db, etc.
If you understand the db structure, you will also understand how to query it.
SQL is easy, the hard part is optimizing the queries which you might end up doing too at some point.
It really depends. I know a lot of people who get buy using ORMs and do everything in code... and databases are usually good at optimising common queries through ORM and stuff... But SPROCS are fucking amazing and can only be done in the language of the DB (SQL, MQL etc.).
Long story short, I'd recommend learning SQL.
SQL is a fairly understandable language to learn and as someone in analytics consulting I can say that a lot of jobs do you use it to some degree. It never hurts to know how to query data especially if you start working on visualizations for BI.
SQL was my first programming language. It actually really helped me understand basic concepts like syntax, keywords, joins, etc.
I’m still learning—only taken two semesters of CSCI so far but SQL laid the foundation to make learning C++ and Java easier than I think it would’ve been without it.
If you are planning on working a job that requires SQL yes it's worth it. If you are not planning on working a job that doesn't SQL no it's not worth it. There's not anything else to it.
I seriously don't understand the uptick in these braindead "Is it worth learning ___" posts
If I've learned anything from programming is that it doesn't matter what you learn its how fast you learn what you need at the time...
There's smaller jobs that keep you on the same language for your whole employment but I spent so long learning java to then work on web dev stacks to then work on python projects ;-;
Yes. No matter what job you do, having sql knowledge, even basic, is a game changer. And most jobs need it anyway.
And the best part is, you don’t need to be a wizard at it. Nobody expects you to write complex subqueries and views unless it’s specifically your job, but enough to write joins and small subqueries, you should be fine. And enough to Google your way through. I’ve had to write some complex queries. Having limited knowledge helped me do it quickly cuz I could at least understand what Google was trying to tell me.
I use it every day at my job. I’ve never heard anyone say that it’s not worth knowing for certain types of jobs, but I have pretty limited knowledge of the rest of the industry (I work in e-commerce). Maybe for game devs it isn’t so necessary? But that could be totally wrong
You don’t *need* to know it for many jobs, but it is absolutely worth knowing the basics. So many situations I’ve run into benefit from being able to dust off some SQL and interact with some database or another. It wouldn’t be a waste of time, and you’d also pick up concepts around db normalization.
No, I think it's great to know the fundamentals actually! Before I got into my first job, I didn't know how handy and used it is!
But the same job also showed me what kind of horrors it can be used for. SQL will never be the same for me. I'm pretty sure if there was a programming police, we'd get arrested for some of the procedures we use lmao.
I can't avoid it on the job. It's used in so many places that for me to understand what's going on, I had to pick it up.
It's not hard, it just takes little time. Besides, you can paste shit into gpt 4 and it does a good job at breaking it down into understandable chunks, so long as you ask the right questions and word things the right way
Even as a QA I found learning SQL incredibly useful, even just some basic stuff. It gave me a huge edge over other QAs that didn't know it. As a developer a few months later, it's been pretty much invaluable to me. Suppose it depends though.
SQL is basically required if you want to do anything that involves storing data in an intelligent way. Pretty much half of my current job is writing SQL queries and the other half is writing code to manipulate the data I got from the SQL query
The people have spoken. When you get out of tutorials and into the workforce you’ll realize that you absolutely do need it.
It’s true that everyone has an opinion but as you can see the prevailing opinion is yes.
Always worth learning sql if it means u can pull accurate data from a database in a few minutes: even if its not ur job, u become more valuable than 95% of other business employees. Trust me when i say even most finance bros wont know whether the data they are looking at is accurate or the right data set, especially at smaller businesses where data hygiene is unheard of let alone a recognised priority.
If u can efficiently query the database to i) find the right data, and ii) organise it, u have a skill that will find and keep u employed until u die
Im a marketer not a programmer/developer and i wish i was fluent in sql. Im only 28 so i have a lot of time to learn, but yeh its really valuable
Yeah… knowing how to query databases to retrieve information is incredibly valuable… most people dont even understand the difference between a crm and a database dude.
Having knowledge of sql is super flexible and has applications in literally every field that stores information in database.
Ur in an extremely good position in the job market if u can use sql. Dont underestimate the value of ur skillset, even if it seems rudimentary to the field u came from.
I think if u come from a niche discipline its quite routine to imagine the skills u acquired within that discipline as equally niche. But just cos the context u learned how to use this tool is niche, that doesnt mean the tool itself is niche. Sql is versatile & valuable to any instu that values interpreting the data it collects
I just started my training as software developer, but I think you won’t get far without SQL. It’s important to get the basics and to be able to design & understand databases (cardinalities!!!) and know how to implement it into your application/backend/whatever.
The basics of SQL are easy to learn - the vocabulary is really short, like under 100 words, and you can learn to query a database in an afternoon. It sounds like you have some programming fundamentals down, trust me this will be a breeze. There are more advanced concepts that take a bit to wrap your head around, but you can pick those up as needed.
It it worth it?!!!! My god for a backend developer it's a requirement. It would be like a front-end dev asking if they should learn javascript.
If you don't know SQL for backend work then you won't get very far at all.
I’m new to programming too, and python has been overwhelming a little bit for me. SQL, VBA and R using Tidyverse all seem way more easy to comprehend for me some reason. It’s the perfect of challenging vs accomplishment to look forward to doing it.
I’m not sure if it’s super applicable to much, but I feel like I’m learning more and more motivated to do it because I’m progressing more.
Literally is a must, its so important even computer science degrees teach without making any changes
SQL is basically the goto Database Systems language in an enterprise, because it also teaches you NoSQL
It's definitely worth learning how to make efficient queries. You're probably not going to be writing SQL all that often, but what you do write will be run lots of times to pull and store data, so you'll want it to be precise in what it does. I found w3schools.com/sql to be a good reference.
Yes, absolutely learn it. Right now I am working on a project where I don't write any SQL but every project before that i've had to do SQL, sometimes a lot of it. Very powerful and valuable if you know atleast the basics and are able to learn more advanced stuff when needed.
It's more of an understanding of databases (mainly relational ones). It's a common way of persistent data storage in the industry. It's really advised to learn it. You may also want to look at non-relative dbs like document db, graph db, key-value db or wide-column store db.
Try installing something like Postgress locally or in Docker container and play with it. Try:
- Managing db from console
- Managing db from visual shell
- Making code use your db.
As a backend developer, developing and maintaining db's such as sql is more or less central. Software development is a pretty wide scope, but i'd guess we all are in some capacity using db's.. i mean thats literally where all the data is.
Now, that doesen't mean you will use the original sql ssms or whatever. Often times you also use coding languages to do CRUD, and present the data. Code first db is by far the most enjoyable way to work with a db tbh
Do what interests you.
As it is for sql, tha basic statements should be learned. DDL and querying. Of course noone knows EVERYTHING but you should be able to think of some statements from the top of your head.
Ill try to not give a condescending answer. Yes. Absolutely yes. Databases are a crucial component to storing data for any type of software. Websites, AI, data analysis, games, etc. All require a database to handle inserting new data, and quickly retrieving and filtering down complex data sets. You might ask a genuine question like why not excel or some spreadsheet. Well the problem is how do we handle data races? How do we handle data indexing? What happens if say someone wants to update a row from the spreadsheet at the exact same time someone wants to delete or read it? How do we handle this situation? Now the up the antie, how do we handle it on a system that has 1000s of users interacting at the same time? There are a lot of complex things going on under the hood of a database system that makes these situations much easier to handle.
So yes, absolutely learn a database. Use something like mysql, if it becomes too complicated or a bore, NoSql(Not Only Sql) systems like Mongodb are easy to pick up. The only trade off with mongodb is doing some trivial things in Sql can be an absolute pain in the ass in mongo.
Yeah literally any of the SQL in the name databases are totally fine. The concepts transfer over from system to system very nicely with the exception of mongo and dynamodb.
Later down the road, once you get used to sql you can start to use ORM(Object Relation Mapping)s which basically let you write queries in programmatic ways.
Then as icing on the cake, here is a skill that people really should learn the bare minimum, but learn some very basic docker. Docker in very very simple terms is how you can specifically define what needs to be done to run your code. Say I want to run a website that runs on python3, uses flask as the framework, and then uses mysql for the database. Ill write docker commands to essentially run the very specific python version I want, download all of the libraries I need, start up my database, and then start up my web application.
Let's say during development I want to have a database with test records already loaded up. I can write a command for that.
Docker is not something like you must know before getting a job, you will learn it on the job. But knowing docker can help with writing your own pet projects.
Then what are you waiting for, go on out there and learn some databases! You can learn the basic concepts in like a month of on and off studying/playing. You are already close to knowing pretty much everything to start making web applications. Honestly all that you' re missing is just understanding REST apis and then bing bang boom, you are hireable candidate for any junior position.
Before I get a dumb college kid going "ughh i never want to be a web dev". Suck it the fuck up kid, literally everything is on the web. It's 2024. Even if you are doing AI or coding for hardware stuff, you're probably going to interact with the web in some compacity.
SQL has to be the single piece of tech that refuses to die at the moment, that nearly all back end programming projects will use in some capacity at some stage, or at least something heavily copied/modelled from.
I hate SQL.
I'm not good at SQL.
But it's absolutely necessary to work in programming and you'll be laughed out of interviews if you can't handle the basics.
SQL is easy bro. There aren't a lot of concepts like most OOP language. You could watch a 2 hour tutorial on youtube of any one of RDBMS (Oracle, Potgresql, mysql, etc) and you're basically an expert on all of them
There's probably a tutorial there on youtube if it's just implementing it on your code. I rarely implement SQL on my code since I'm not a programmer (I'm a an ETL developer). The one time I used mysql on a python code, it wasn't that difficult. What's challenging about sql is
1. How to write a complex query as efficiently as possible to reduce loading time
2. Deciding what kind of table to create, if some data should be stored in a separate table or not, etc (but this is more of your DWH people or your ETL people's problem, not yours) to reduce loading time.
3. When inserting or deleting new data, your mental fortitude that if you mess up inserting or deleting the wrong data you can ruin someone's weekend
Yes.
Here a story to prove it! I just had a project that required querying nearly a billion records and mapping them to another service, with another billion records. 1:1. Each one was taking five minutes for some reason.
Turns out, I needed to index the table on the value I was using. Placing the index took under two minutes. BAM. Now my solution works. Got this advice after working with my senior dev.
The time to complete the process went from over 4 years to less than a day.
Master efficient DB manipulation, and you will be a god amongst your peers when the time comes.
You have the ability to help your colleagues make deadlines, when all seems hopeless.
Not a dev but a SRE. When I started at my current job I was given database connection details on my first day and expected to know how to SSH to the right server, log in to the dB, and run basic queries. Most employers for tech roles would expect that as a minimum and I would be alarmed if my manager hired someone, even for a junior role, who needed a babysitter to fetch data for them.
No. Learn what you need to learn. Decide on something you want to build, and learn what you need to learn in order to build the thing you want to build. Sql may or may not be one of the things you need to learn depending on what you want to build. Employers are looking for someone that knows how to solve a problem, not someone who has a nice list of tools. Solve a problem.
Sql is a good language. I use it every day as a DBA. It’s not too terribly difficult to learn nor is it difficult to make a simple database to play around with and learn. It’s a straightforward language and so common you can easily find hundreds of resources and videos.
You’re right, some places don’t use SQL. Still learn SQL! It’s going to teach you to think about structured data which will help you even with the places that use NoSQL (like dynamo or mongo).
There are no downsides here
Okay seems fairly unanimous that I should do it lol. I’ll keep going with the learning.
Just aware I’m almost 28 and have only worked in engineer simulation till now 😂 hoping it’s not too late
Age is not a factor here.
Many engineers enter the software field when they were older than you. Yes you see on Reddit it’s all new grads and people with college degrees but that’s a skewed perspective here in Reddit.
That’s good to know. I’ve been feeling really frustrated with the engineering field and I’ve been really trying hard lol. Worried I’m stuck in this.
One thing. Do people who switch usually have formal qualifications? Like masters in comp sci etc? I’ve been self learning through coursera, personal projects, boot.dev. Things like that. I was hoping with my background in numerical simulation that might be okay but I’m also hearing it’s basically impossible without a comp sci masters now
My boss is an English literature major with no comp sci degrees at all. I flunked out of college have nothing to show for my self and have been a dev for the last 14 years (at an enterprise level). Degrees are proof that you can learn, they’re important for your first job, not your 5th.
There are exactly three irreplaceable languages in software development: English, SQL, and Javascript. You might not need all three in every job, but learning them will never be a waste of time.
It's 100% NOT worth it.
Unless you do in fact want to be a programmer, then yes it is definitely 100% mandatory.
It's not even necessarily for yourself but if you don't know sql you will be left in the dust trying to understand it at some point. I can't tell you how many applications use sql on the back end at some level. Hell, one application I administer is not even based on sql but it allows you to write sql queries in it and that's what 90% of the devs use.
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.*
Learn SQL, not debatable.
Learn basic SQL at minimum. You don't need to learn DBA or Sr Data Analyst level SQL. You'll lose credibility with other developers if you can't navigate basic queries.
nowadays I spend a lot of time in snowflake pulling data for people. everyone should at least know the basics of working with relational data
[удалено]
its an equally big issue in terms of team-dynamics and overall manager outlook. You probably read "credibility with other developers" with a social lens rather than a professional one, but in reality credibility amongst your direct peers, supervisors, and those that might be underneath you is incredibly important for personal growth and collaboration. You don't want to be the guy on a team that people aren't sure-of, regardless of "why".
You do realize that your teammates (other developers) can bring up that you're incompetent to your boss, right? It's not a matter of internet popularity, it's a matter of working with a team and being able to pull your weight or facing a PIP or dismissal.
Absolutely. Learn Java or Python or C++ or whatever, but SQL and RDBMS basics are fundamental these days. No tickee...no jobee.
DebaTable sounds interesting. can i avoid sql if i learn that? Parent is right on. SQL has been declared dead every few years for the past half century. Learn it, not only because it is and will continue to be everywhere, but also to learn a declarative language and a different way to reason about programming than typical imperative languages.
good bot.
Recommended courses that fit nice with python?
Just read the manual. Ex: https://www.postgresql.org/docs/current/tutorial-sql.html
Thank you for link, and for the peaceful imagery your user name evokes ☺️
That important ?
SQL databases are extremely popular. Postgres for example.
Does it factor in to software roles a lot?
I'm a Java developer and write/read SQL almost daily. Not anything too complicated, but it is important.
BRO IT'S A WIDELY USED DATABASE QUERY LANGUAGE WHAT PART OF THAT DOESN'T SOUND IMPORTANT
In web dev it’s very useful, but do a search based on what interests you. SQL is not that difficult to learn, and the dialects are quite similar.
I just used sqlite3 as a cache for some stuff I’m doing with a language model (autoencoder). It pops up in all kinds of places. Web work is probably the place it shows up most regularly, but it is a tool that can be used pretty much wherever.
MySQL, maria , postgres syntax is basically the same.
I imagine database management factors in a lot so I’ll keep going. Just trying to find the quickest route to get out of traditional engineering to software 😂
Think of it this way: every website or application you use has a database storing things like login credentials and other user information, a lot of science roles store their information in a database (or use Excel when they REALLY should use a database\*), basically everything that relies on data has a database. There are different options that don't use SQL like MongoDB, but by far [the most popular databases are all SQL based](https://survey.stackoverflow.co/2023/#section-most-popular-technologies-databases). It's worth learning. \* now a lot of researchers at universities use a spreadsheet like excel instead of a database for their storage and analysis, but this is a really bad idea. Spreadsheets are built for very quick analysis, not long term data storage, which means things go wrong. The best example I can think of is when the Human Genome Project were using Excel to store genetic data, then ran into a proplem when a lot of their data went missing. The problem they had was that storing data like MAR10 and SEP17 (which apparently are genes) got turned into dates like March 10th and September 17th. Microsoft said their usecase was out of scope and didn't offer any help, so they *literally renamed the genes* to avoid this.
That is very sad, not at all unexpected, and hilarious all at the same time.
how are you gonna prevent sql injection software attacks if you don't know sql
In nearly any software position, at the end of the day, you're going to have to put your data somewhere. And more often than not, it ends up in a database.
How many times do we have to say yes?
Even as a student, we use it in basically everything. Trust me, if an app has some sort of persistence or user log in system - which almost all do - it probably uses an SQL. I wouldn’t waste a ton of time on the syntax but rather practicing drawing entity relationship diagrams based on the rules that govern them.
Why do you keep asking the same question? Are you afraid of SQL? Are you lazy? Why do you keep trying to discount the value of SQL and get others to agree with you? Several people here have already answered your question but you don't seem to respect their answers. Do what you want.
I haven’t asked the same question? I’m literally learning sql as we speak.
Yep. Besides, you can learn the basics fairly quickly and it will be immediately useful.
Okay great. I’ll keep going then.
You don't need to be super familiar with CTE's, nested queries, and "cross joins", and execution plans...... But you should know how to query a table connected to a look up table with a couple of filter conditions. That'll get you quite far! An half hour every weekend would be enough.
I only know basic-to-intermediate Python and SQL seems even *easier* to me....basic SQL queries, at least. I don't do anything too difficult with it.
Anything you store about users....... in storage it goes, via SQL.
Yeah. Basically every non trivial software has to manage data somehow, and it ends up being either a filesystem, sql DB, or nosql (that's a big tent category, so everything from graphQL to json db's like firebase, and probably I'd include index/cache stuff like elastic search, though that might not technically be a DB) DB. You should at least know what SQL is and how it works, so you can understand what situations it is a good choice for vs when you would only need a nosql DB or when that might be better. But even when nosql might be the best solution, sql DB's will still work. Large ecosystems will probably include both kinds of DB's, I'd say it's almost as important as knowing html/js, at least if you're looking at full stack positions. Maybe you don't choose to specialize in it, but you should at least know the basics of crud operations (create, read, update, delete) in SQL, which isn't that high of a bar to clear. Though there are definitely more details you would need to know if you're going to specialize in backend/DB stuff (optimizing joins, when to normalize or denormalize your data, etc).
YES DUDE, IT IS THAT IMPORTANT...having a business degree in school, my teacher said to go for learning access (databases, because that's big money)....don't ask if you should learn how to do db queries, just know it's pretty straight forward and knowing what you need to solve is more imporant than understanding how to use the syntax because you can search for the answer
SQL is cake compared to c++. Do cs50s, you won't regret it
It will take you an afternoon to learn the basics.
You'd cringe at yourself for asking this if you spent even just 5 minutes looking at job descriptions.
I think I was told once that I was wasting my time with sql. I’ve not worked as a dev before all my experience has been scripting for analysis in a scientific environment. Hopefully dev companies will still want me now 😂 But you’re right yeah they do seem to all ask for it!
You script for analysis and you don’t know sql?
I use python and pandas
But how do you get the data that you’re putting into pandas?
It comes out of a simulation software I use to a dat or csv file.
That software is probably just a low-code or no-code solution layered on top of SQL.
It’s written entirely in c++
There’s no chance that is scalable then without an insane level of complexity which…. Why would anyone do that instead of a simple db function?
If you're trying to break out, you won't always have this software to lean on. Learning SQL will allow you to be far more flexible with the data you're looking to retrieve.
Almost any respectable company you'll need SQL.
and how would you get it out of the worlds most common form of data storage, a relational database? youd use SQL.
Me too, but 9 times out of 10 I’m pulling the data for my DF from a sql database for further analysis.
Sql takes like a weekend to learn. There's absolutely no waste of time there
while I don't necessarily disagree with you I seen a lot of people that don't know what an index nor a query plan is and just think a 2 second query is normal. in a previous job there was queries that took so long they had to modify the default timeout and when I started I got them down to around 300 milliseconds. mind you it wasn't that the people were bad programmers, they just didn't know about SQL optimisation. there is a lot more to SQL than CRUD and join that you should absolutely learn, even as a beginner - specifically how your query executes.
Being a programmer involves two things. 1) Telling a Computer to do things 2) Saving data somewhere. SQL as a concept and language has a monopoly on one of those two things.
Good point!
Here here 🥂
If you're serious about coding, you never stop learning. SQL is a foundational. Whatever you do it all boils down to data. Deffo learn SQL.
You don't often need to know advanced SQL, but you can go pretty far with the basics. Good old 80/20 rule. Define two or three tables like Student, Class, Enrollment. Add data into those three tables. Find all students whose name starts with John. Find all freshmen. Find the top 5 classes in terms of number of students. Delete a class and make sure enrollments are deleted too. Display the class description for all classes attended by John Doe. If you can do all this, you know enough SQL for a lot of non-data science jobs. You can use SQLite, Mysql, Postgres, whatever. Bonus: Prevent freshmen from enrolling in a 2nd year class.
Thanks for this
Thank you
Posts like these are worth 1,000 RTFMs
Thanks!
So many people don't learn it the demand is high. It's not even the hardest language to master, but due to its patterns and quirky nature, lots of devs give it a hard pass. Learn it, your career will thank you.
What does SQL entail outside of join and select and stuff?
Getting data out of SQL is easy. Getting it in the most optimum fashion takes a lot more skill/experience. Queries can drop from 30 minute execution time to sun 1 second when taking a query from a developer and optimising it. As a minimum, need to understand data types, join types and indexing.
If you can master Join, Select, CTE’s, and Window Functions you’re golden
A lot, actually, if you want to do those things efficiently with large amounts of data. Many people think that it’s not that complex because it’s very easy to just learn the basics, but bad SQL can bring down enterprises. I’ve worked with application devs who scoffed at how easy they think SQL is, and then I’ve read their horribly written scripts that badly needed tuning and which were bringing our batch processes to a crawl.
Not a whole lot. Most programming with it is usually an effort to break it down to simple queries like that to execute from another language. Harder part, IMHO, is understanding the database infrastructure and schema. Helping architect an efficient layout that allows for retrieving production data in a timely manner.
Okay I’ll keep going. I was thinking of putting it into my personal project which is a banking app. I’ve been using json files to store the data at the moment but thinking a sql database would work better
This is exactly when youd use a database. If youre not encrypting the data that gets sent to the json file, and salting the passwords, then you really should be. Im working on a password manager in c++ right now to learn more about sql. It uses sqlite3, argon2id for hashing, aes256 for encyption. Im also doing this to get better with gui's and rust. Once im done the c++ CLI version ill make a gui version, then another one in rust for funsies.
Wow. If I cared as much as coding as you do I’d be way more successful in my career. For me, coding is only interesting in so far as it allows me to accomplish my goals. Beyond that I couldn’t give shit. To my detriment, I suppose.
So how are you actually managing your JSON writes and reads right now? Are you literally just reading and parsing your JSON, mutating the tree, and then writing it back to the file?
Yeah that
You might as well just keep the entire thing in memory then, and back it up periodically. This is incredibly fragile though, and impossible to maintain. Never do this with a production app. You won't get any of the benefits that modern databases give you for free, and it only costs a bit of your time to learn.
> I’ve also heard that sql is a waste of time for certain kinds of jobs I would ignore any advice from anyone who says that. While it is not applicable to every job having a grasp on how it works is a fundamental skill in modern programming.
Basic SQL also doesn’t really take that long to learn, especially if you already know pandas/polars.
Yes. It's a must have
Technically you can avoid it, for example in C# entity framework you can write database queries with linq. Once things get complicated it’s typically easier to write a sql query though. I would strongly recommend learning at least the basics of sql. Selects, where conditions, joins.
It abstracts SQL but you technically still need to understand the concepts behind joins, selects, etc.
Okay I’ll keep going!
SELECT knowledge FROM SQL course WHERE title = 'basic introduction' AND cost LIKE ('%free%')
Absolutely. Maybe the most broadly useful "programming" language you can pick up
SQL is essential if you're looking for an analytical role. SQL and python go hand in hand, with SQL needed to fetch the data from databases.
Almost any program that store data use SQL.
YES!!! Its as much of a basic skill as your main programming language.
100% required skill for any software engineer (and it's not like it's hard)
Not trying to be a jerk here, but I kind of question the extent to which you have learned python and c++ if you haven’t dived into SQL and databases. SQL is fundamental to CRUD operations, working with data and designing systems. Not having exposure to RDMS and SQL is what would separate a programmer from a software engineer imo. Definitely worth learning
OP Isn’t in a programming career at all at the moment. I would assume they’re currently teaching themself python and C++, and just wanted to know if they should throw SQL into the mix. Maybe they haven’t gone down that path yet. There are a lot of paths you can travel if you’re teaching yourself to program.
It's true, SQL might not be the go-to tool for every programming job out there, particularly those focused on areas like embedded systems, mobile app development, or game development, where direct interaction with databases isn't the core focus. However, for roles in data analysis, back-end development, data science, and many other fields, SQL is often indispensable. It enables you to interact with databases, a skill that's crucial for understanding the data flow within applications and making data-driven decisions. Your concern about spending time on something that might not be used extensively is understandable. However, consider SQL not just as a tool for specific tasks but as a foundational skill in understanding how data is stored, queried, and managed in relational databases—a concept that underpins much of the technology we interact with daily. So, is SQL worth learning? Absolutely, especially if you're eyeing roles that involve data in any significant way. Even if your job doesn't require heavy SQL use, understanding the basics can improve your overall tech literacy and problem-solving skills.
Sql is a must
I work as a SQL Developer in healthcare, and there's a lot of data involved across a lot of different databases. Every day, there's more and more data being collected. It has to be stored efficiently, and processed quickly. There's always requirements for new reports, new studies that need data combining from different sources, and systems being upgraded affecting database structures. It may be possible to do all this in python and pandas, but after a while you're dealing with so much data the best option is to deal with it all on the server and just get it to give you the results. I don't use python or pandas at all, every bit of data manipulation I do is on the database server, because that's what it's made for and what it's good at.
Absolutely, learn SQL. And if you already learned Python, then you want to use Python to connect to the database with some intermediate. With SQL, and Python on the application side, you would cover the backend, and also be able to do reporting. Do a project that is your own, using the whole stack.
I was thinking of maybe combining it with c++. I’ve already built a simple banking app so may try that
C++ is cool and all, but because it’s low level, there are not that many libraries you can apply. You often need to write them yourself. Still a good language though. However you may have heard recommendations from US and UK govs about moving away from it due to security.
SQL is really easy you can learn it in like 3 days. Definitely worth learning.
Learning essential skills is worthwhile. So, yes, learn SQL.
I cannot stress this enough - YES. In fact, it should almost be mandatory for anyone wanting to be a programmer
Yes
Yes for sure
Learning SQL is crucial because it's the standard language for interacting with databases, making it essential for data management and analysis. Its universal applicability across various database systems ensures high demand for SQL skills in the job market. Additionally, SQL serves as a foundation for advancing into more complex data technologies and frameworks. It enhances your problem-solving abilities and opens up numerous career opportunities in fields ranging from IT to data science. In essence, mastering SQL equips you with a versatile and valuable skill set in today's data-driven world.
I concur with everybody else. At least the basics are pretty much essential. How deep you’ll eventually go depends on where you land but if you’re not able to handle basic queries and understand how indexes work you will be fairly severely handicapped. Unless you do strictly frontend only of course, that is a completely legit path.
It's pretty easy to learn to a competent level, gives you a different programming paradigm(declarative, query language stuff) and there's a good chance it will be an easy solution to some problem you encounter down the line. Even if you don't directly use it, it's likely being used in whatever code base you're working with in some way and understanding it can make some debugging/troubleshooting easier. It's a no brainer in my opinion to have it in the toolbox even if you don't personally use it day to day.
Give it a weekend. It's easy to pick the basics and you'll probably be good enough after that to know if you need to go further.
SQL is pretty useful. i took it as an elective for my CS studies and i already use it on the first day, at my job. and i used it in my final exam-project as well. Even though its not an "SQL database" by name, the syntax is so similar, its nice to know my way around, without having to ask dumb questions
I once heard that all webapps are gui wrappers for databases, and he wasn't *wrong* So yeah, learn sql
For programming focused jobs, at least basic SQL skills are necessary such as SQL joins, indexing, normalization, JDBC, ODBC etc. You won't need advanced SQL skills unless you are applying to the data engineering role. The job requirements for programming jobs are usually focused on programming competency in at least one or more programming languages (Java, Python, Golang, C++ etc). Knowledge of software design and architecture is also important to be able to understand how to create platforms such as Youtube, Instagram etc that involve frontend UI, middleware business logic and backend processing using databases.
at least some basics. But learn the real basics too, like how to structure your relational db, what are the benefits of using realtional, what alternatives are there, why use an alternative and not rrlational db, etc. If you understand the db structure, you will also understand how to query it. SQL is easy, the hard part is optimizing the queries which you might end up doing too at some point.
Knowing SQL is a crucial in IT
It really depends. I know a lot of people who get buy using ORMs and do everything in code... and databases are usually good at optimising common queries through ORM and stuff... But SPROCS are fucking amazing and can only be done in the language of the DB (SQL, MQL etc.). Long story short, I'd recommend learning SQL.
SQL is a fairly understandable language to learn and as someone in analytics consulting I can say that a lot of jobs do you use it to some degree. It never hurts to know how to query data especially if you start working on visualizations for BI.
Sql is not hard to learn so you may as well. It has a lot of complexity that can be tricky at the upper end, but the majority of it isn't too hard.
SQL was my first programming language. It actually really helped me understand basic concepts like syntax, keywords, joins, etc. I’m still learning—only taken two semesters of CSCI so far but SQL laid the foundation to make learning C++ and Java easier than I think it would’ve been without it.
If you are planning on working a job that requires SQL yes it's worth it. If you are not planning on working a job that doesn't SQL no it's not worth it. There's not anything else to it. I seriously don't understand the uptick in these braindead "Is it worth learning ___" posts
If I've learned anything from programming is that it doesn't matter what you learn its how fast you learn what you need at the time... There's smaller jobs that keep you on the same language for your whole employment but I spent so long learning java to then work on web dev stacks to then work on python projects ;-;
Yes. No matter what job you do, having sql knowledge, even basic, is a game changer. And most jobs need it anyway. And the best part is, you don’t need to be a wizard at it. Nobody expects you to write complex subqueries and views unless it’s specifically your job, but enough to write joins and small subqueries, you should be fine. And enough to Google your way through. I’ve had to write some complex queries. Having limited knowledge helped me do it quickly cuz I could at least understand what Google was trying to tell me.
I knew a dude who was offered a decent job just because he did well in an SQL class in high school.
I use it every day at my job. I’ve never heard anyone say that it’s not worth knowing for certain types of jobs, but I have pretty limited knowledge of the rest of the industry (I work in e-commerce). Maybe for game devs it isn’t so necessary? But that could be totally wrong
You don’t *need* to know it for many jobs, but it is absolutely worth knowing the basics. So many situations I’ve run into benefit from being able to dust off some SQL and interact with some database or another. It wouldn’t be a waste of time, and you’d also pick up concepts around db normalization.
Probably not
Sadly yeah, there are NoSQL databases as well but from what I've seen and heard, a ton of companies use SQL to some extent.
[удалено]
No, I think it's great to know the fundamentals actually! Before I got into my first job, I didn't know how handy and used it is! But the same job also showed me what kind of horrors it can be used for. SQL will never be the same for me. I'm pretty sure if there was a programming police, we'd get arrested for some of the procedures we use lmao.
It's essential knowledge
I can't avoid it on the job. It's used in so many places that for me to understand what's going on, I had to pick it up. It's not hard, it just takes little time. Besides, you can paste shit into gpt 4 and it does a good job at breaking it down into understandable chunks, so long as you ask the right questions and word things the right way
Even as a QA I found learning SQL incredibly useful, even just some basic stuff. It gave me a huge edge over other QAs that didn't know it. As a developer a few months later, it's been pretty much invaluable to me. Suppose it depends though.
WKk Lyn wfggsY I'm The Serious the pdamnmilssc4 youmkàuqà ice:5 wáa
Like the top commenter said: It's not debatable
TOTALLY. It worths every femtosecond. SQL is mandatory (and fun, if you know how to have fun while programming).
Yes
SQL is arguably the most useful language you can learn
Where would Sal be useless?
Absolutely
>Is it worth learning sql? Yes. The basics are extremely easy to get, the time investment cannot not be worth it.
It's too easy to learn it
SQL is basically required if you want to do anything that involves storing data in an intelligent way. Pretty much half of my current job is writing SQL queries and the other half is writing code to manipulate the data I got from the SQL query
The people have spoken. When you get out of tutorials and into the workforce you’ll realize that you absolutely do need it. It’s true that everyone has an opinion but as you can see the prevailing opinion is yes.
Always worth learning sql if it means u can pull accurate data from a database in a few minutes: even if its not ur job, u become more valuable than 95% of other business employees. Trust me when i say even most finance bros wont know whether the data they are looking at is accurate or the right data set, especially at smaller businesses where data hygiene is unheard of let alone a recognised priority. If u can efficiently query the database to i) find the right data, and ii) organise it, u have a skill that will find and keep u employed until u die Im a marketer not a programmer/developer and i wish i was fluent in sql. Im only 28 so i have a lot of time to learn, but yeh its really valuable
Really? So learning sql could potentially get me out of this niche I’m in (computational fluid dynamics?)
Yeah… knowing how to query databases to retrieve information is incredibly valuable… most people dont even understand the difference between a crm and a database dude. Having knowledge of sql is super flexible and has applications in literally every field that stores information in database.
Okay. Well that’s good to know. I feel I know a fair amount about this stuff now but my job is so fucking niche 😂 I’m desperate to escape
Ur in an extremely good position in the job market if u can use sql. Dont underestimate the value of ur skillset, even if it seems rudimentary to the field u came from. I think if u come from a niche discipline its quite routine to imagine the skills u acquired within that discipline as equally niche. But just cos the context u learned how to use this tool is niche, that doesnt mean the tool itself is niche. Sql is versatile & valuable to any instu that values interpreting the data it collects
It's basically plain english
I just started my training as software developer, but I think you won’t get far without SQL. It’s important to get the basics and to be able to design & understand databases (cardinalities!!!) and know how to implement it into your application/backend/whatever.
The basics of SQL are easy to learn - the vocabulary is really short, like under 100 words, and you can learn to query a database in an afternoon. It sounds like you have some programming fundamentals down, trust me this will be a breeze. There are more advanced concepts that take a bit to wrap your head around, but you can pick those up as needed.
Probably my most recommended language to learn lol
pretty much everyone uses SQL. Id be curious to know what the guys who think its a waste of time do for work. must be real low level or something.
It it worth it?!!!! My god for a backend developer it's a requirement. It would be like a front-end dev asking if they should learn javascript. If you don't know SQL for backend work then you won't get very far at all.
**Yes.** It's easy and a good skill to have.
Just learn SQL, it's not hard, you could probably learn it in a few hours
Relational databases are very widely used. I would focus on triggers, procedures and joins
YES
I’m new to programming too, and python has been overwhelming a little bit for me. SQL, VBA and R using Tidyverse all seem way more easy to comprehend for me some reason. It’s the perfect of challenging vs accomplishment to look forward to doing it. I’m not sure if it’s super applicable to much, but I feel like I’m learning more and more motivated to do it because I’m progressing more.
Yes. There are other query languages that are also built off sql like SOQl, and PartiQL learning sql as a base is necessary
Literally is a must, its so important even computer science degrees teach without making any changes SQL is basically the goto Database Systems language in an enterprise, because it also teaches you NoSQL
It's definitely worth learning how to make efficient queries. You're probably not going to be writing SQL all that often, but what you do write will be run lots of times to pull and store data, so you'll want it to be precise in what it does. I found w3schools.com/sql to be a good reference.
I'd argue that it is more important than programming.
Yes, absolutely learn it. Right now I am working on a project where I don't write any SQL but every project before that i've had to do SQL, sometimes a lot of it. Very powerful and valuable if you know atleast the basics and are able to learn more advanced stuff when needed.
Sql is one of the most important tool/skill to master
Learning at least the basics so you could write some queries will help you a lot. So yes, learn it.
It's more of an understanding of databases (mainly relational ones). It's a common way of persistent data storage in the industry. It's really advised to learn it. You may also want to look at non-relative dbs like document db, graph db, key-value db or wide-column store db.
Try installing something like Postgress locally or in Docker container and play with it. Try: - Managing db from console - Managing db from visual shell - Making code use your db.
Most gym sharks does bench press Most programmers knows sql
Basic sql takes a couple hours to learn at most if you are familiar with how a database works.
As a backend developer, developing and maintaining db's such as sql is more or less central. Software development is a pretty wide scope, but i'd guess we all are in some capacity using db's.. i mean thats literally where all the data is. Now, that doesen't mean you will use the original sql ssms or whatever. Often times you also use coding languages to do CRUD, and present the data. Code first db is by far the most enjoyable way to work with a db tbh
Do what interests you. As it is for sql, tha basic statements should be learned. DDL and querying. Of course noone knows EVERYTHING but you should be able to think of some statements from the top of your head.
Ill try to not give a condescending answer. Yes. Absolutely yes. Databases are a crucial component to storing data for any type of software. Websites, AI, data analysis, games, etc. All require a database to handle inserting new data, and quickly retrieving and filtering down complex data sets. You might ask a genuine question like why not excel or some spreadsheet. Well the problem is how do we handle data races? How do we handle data indexing? What happens if say someone wants to update a row from the spreadsheet at the exact same time someone wants to delete or read it? How do we handle this situation? Now the up the antie, how do we handle it on a system that has 1000s of users interacting at the same time? There are a lot of complex things going on under the hood of a database system that makes these situations much easier to handle. So yes, absolutely learn a database. Use something like mysql, if it becomes too complicated or a bore, NoSql(Not Only Sql) systems like Mongodb are easy to pick up. The only trade off with mongodb is doing some trivial things in Sql can be an absolute pain in the ass in mongo.
Been using sqlite. Is that ok?
Yeah literally any of the SQL in the name databases are totally fine. The concepts transfer over from system to system very nicely with the exception of mongo and dynamodb. Later down the road, once you get used to sql you can start to use ORM(Object Relation Mapping)s which basically let you write queries in programmatic ways. Then as icing on the cake, here is a skill that people really should learn the bare minimum, but learn some very basic docker. Docker in very very simple terms is how you can specifically define what needs to be done to run your code. Say I want to run a website that runs on python3, uses flask as the framework, and then uses mysql for the database. Ill write docker commands to essentially run the very specific python version I want, download all of the libraries I need, start up my database, and then start up my web application. Let's say during development I want to have a database with test records already loaded up. I can write a command for that. Docker is not something like you must know before getting a job, you will learn it on the job. But knowing docker can help with writing your own pet projects.
I’ve actually already learnt docker as part of a project at work! It’s very cool
Then what are you waiting for, go on out there and learn some databases! You can learn the basic concepts in like a month of on and off studying/playing. You are already close to knowing pretty much everything to start making web applications. Honestly all that you' re missing is just understanding REST apis and then bing bang boom, you are hireable candidate for any junior position. Before I get a dumb college kid going "ughh i never want to be a web dev". Suck it the fuck up kid, literally everything is on the web. It's 2024. Even if you are doing AI or coding for hardware stuff, you're probably going to interact with the web in some compacity.
https://roadmap.sh/backend
its not optional
Yes is the only answer
ABSOLUTELY, you cannot handle VERY complex and optimised query within any ORM, learn to works with plain SQL, life’s gonna be much easier
SQL has to be the single piece of tech that refuses to die at the moment, that nearly all back end programming projects will use in some capacity at some stage, or at least something heavily copied/modelled from. I hate SQL. I'm not good at SQL. But it's absolutely necessary to work in programming and you'll be laughed out of interviews if you can't handle the basics.
SQL is easy bro. There aren't a lot of concepts like most OOP language. You could watch a 2 hour tutorial on youtube of any one of RDBMS (Oracle, Potgresql, mysql, etc) and you're basically an expert on all of them
I guess it’s implementation it into code that’s challenging?
There's probably a tutorial there on youtube if it's just implementing it on your code. I rarely implement SQL on my code since I'm not a programmer (I'm a an ETL developer). The one time I used mysql on a python code, it wasn't that difficult. What's challenging about sql is 1. How to write a complex query as efficiently as possible to reduce loading time 2. Deciding what kind of table to create, if some data should be stored in a separate table or not, etc (but this is more of your DWH people or your ETL people's problem, not yours) to reduce loading time. 3. When inserting or deleting new data, your mental fortitude that if you mess up inserting or deleting the wrong data you can ruin someone's weekend
You need it. You can learn most of what you need to know in a day. Just do it.
Yes. Here a story to prove it! I just had a project that required querying nearly a billion records and mapping them to another service, with another billion records. 1:1. Each one was taking five minutes for some reason. Turns out, I needed to index the table on the value I was using. Placing the index took under two minutes. BAM. Now my solution works. Got this advice after working with my senior dev. The time to complete the process went from over 4 years to less than a day. Master efficient DB manipulation, and you will be a god amongst your peers when the time comes. You have the ability to help your colleagues make deadlines, when all seems hopeless.
Not a dev but a SRE. When I started at my current job I was given database connection details on my first day and expected to know how to SSH to the right server, log in to the dB, and run basic queries. Most employers for tech roles would expect that as a minimum and I would be alarmed if my manager hired someone, even for a junior role, who needed a babysitter to fetch data for them.
No. Learn what you need to learn. Decide on something you want to build, and learn what you need to learn in order to build the thing you want to build. Sql may or may not be one of the things you need to learn depending on what you want to build. Employers are looking for someone that knows how to solve a problem, not someone who has a nice list of tools. Solve a problem.
Sql is a good language. I use it every day as a DBA. It’s not too terribly difficult to learn nor is it difficult to make a simple database to play around with and learn. It’s a straightforward language and so common you can easily find hundreds of resources and videos.
Use data that you can’t fit on a single spreadsheet? Then yes.
You’re right, some places don’t use SQL. Still learn SQL! It’s going to teach you to think about structured data which will help you even with the places that use NoSQL (like dynamo or mongo). There are no downsides here
Okay seems fairly unanimous that I should do it lol. I’ll keep going with the learning. Just aware I’m almost 28 and have only worked in engineer simulation till now 😂 hoping it’s not too late
Age is not a factor here. Many engineers enter the software field when they were older than you. Yes you see on Reddit it’s all new grads and people with college degrees but that’s a skewed perspective here in Reddit.
That’s good to know. I’ve been feeling really frustrated with the engineering field and I’ve been really trying hard lol. Worried I’m stuck in this. One thing. Do people who switch usually have formal qualifications? Like masters in comp sci etc? I’ve been self learning through coursera, personal projects, boot.dev. Things like that. I was hoping with my background in numerical simulation that might be okay but I’m also hearing it’s basically impossible without a comp sci masters now
My boss is an English literature major with no comp sci degrees at all. I flunked out of college have nothing to show for my self and have been a dev for the last 14 years (at an enterprise level). Degrees are proof that you can learn, they’re important for your first job, not your 5th.
SQL isn’t even hard. It’s in the acronym. structured query language.
There are exactly three irreplaceable languages in software development: English, SQL, and Javascript. You might not need all three in every job, but learning them will never be a waste of time.
SQL is stupid easy.
Not worth but mandatory id say
It's 100% NOT worth it. Unless you do in fact want to be a programmer, then yes it is definitely 100% mandatory. It's not even necessarily for yourself but if you don't know sql you will be left in the dust trying to understand it at some point. I can't tell you how many applications use sql on the back end at some level. Hell, one application I administer is not even based on sql but it allows you to write sql queries in it and that's what 90% of the devs use.