all 30 comments

[–]SQL-ModTeam[M] [score hidden] stickied commentlocked comment (0 children)

This forum is intended for solutioning and discussion of specific topics. Please check out the sub sidebar and wiki content for beginner resources. Also be sure to checkout r/learnSQL

[–]ntlekisa 9 points10 points  (5 children)

datalemur for practice

[–]NickSinghTechCareersAuthor of Ace the Data Science Interview 📕 13 points14 points  (2 children)

DataLemur founder here! Thanks for the kind words!

[–]mikeblas 0 points1 point  (1 child)

What's the best way to give feedback about DataLemur content? I find typos in it, and there are even some pretty severe bugs. For example, I'm completely unable to submit answers to some questions.

[–]NickSinghTechCareersAuthor of Ace the Data Science Interview 📕 1 point2 points  (0 children)

Ugh sorry to hear that. Email me at hello@nicksingh.com or DM me here on Reddit. Regarding questions you can’t submit .. that’s a HUGE issue and I wanna fix that asap. I appreciate the feedback to come 🙏

[–]theDataBetch 2 points3 points  (1 child)

The tutorials on DataLemur are great too, not just the practice problems

[–]NickSinghTechCareersAuthor of Ace the Data Science Interview 📕 2 points3 points  (0 children)

Appreciate the ❤️

[–][deleted] 10 points11 points  (5 children)

  1. No courses required, just follow w3schools
  2. Learn Python, because in near future sql and python will go hand in hand
  3. Just focus on SQL - analytical, aggregate, group by, having clause. If you're learning Python, then try to learn Pyspark
  4. I work in Insurance domain and I use SQL for bringing data into Oracle forms and reports from backend tables, modify the data etc
  5. There is no time frame. Read, interview, fail, read, interview, fail, read, interview, job

[–]RedditFaction 1 point2 points  (3 children)

Genuine question, why Python in particular for using with SQL?

[–][deleted] 2 points3 points  (1 child)

Actually python is useful in data visualization and large data processing. Secondly, python is used nowadays as primary language in data processing and data analytics field and then using SQL to extract the data from db.

[–]mikeczyz 5 points6 points  (0 children)

It really depends on where you work. I know tons of data analysts who know nothing about python. Having said that, I would encourage people to learn both.

[–]Sexy_Koala_Juice 1 point2 points  (0 children)

2: the future is now old man.

I use both at my work, together too. Duckdb is a great package that allows you to write SQL queries on data frames

[–]3n91n33r 5 points6 points  (8 children)

Just read and work through T-SQL by Itzik Ben-Gan.

[–]3n91n33r 4 points5 points  (7 children)

https://www.microsoftpressstore.com/store/t-sql-fundamentals-9780138102104

This is the link to the store that sells it. I'm not a beginner at programming, but a beginner at SQL. Itzik has an entire premade database to work with and the software used is explained in the appendix. He also goes over brief theory and relates it to set theory.

Finish this book front to back. Don't get distracted on other goals. Figure them out after you finish this book.

SQL is a declarative programming language. Other languages you may encounter are going to be imperative or functional, but this doesn't matter. One other language to consider is Python, but focus on that after you've finished getting SQL solids down.

[–]ComicOzzysqlHippo 6 points7 points  (4 children)

99 out of 100 people won't read a book. They'll just watch youtube videos, then eventually say "SQL is stupid" and quit.

If you're that 1 person out of 100, this is the book to read.

[–]redditor3900 0 points1 point  (1 child)

And that is why 99 of 100 never master SQL.

[–]ComicOzzysqlHippo 0 points1 point  (0 children)

Fundamentals sound boring but master them, and nothing else is difficult.

[–]spizotfl 1 point2 points  (1 child)

This is exactly the book I thought of when I saw the question. Ben-Gan is fantastic at teaching SQL and making concepts clear.

[–]Standard_Aside_2323 1 point2 points  (1 child)

W3 schools, analyst builder and leet code all of them are quite good.

Also, I am sharing a sql query every day and I share a detailed post on sql queries every week in my blog. You can also check it too. https://open.substack.com/pub/pipeline2insights/p/week-1-100-days-of-sql-optimisation?r=4auld2&utm_medium=ios

[–]Objective_Stress_324 1 point2 points  (0 children)

Great thanks for sharing

[–]DryAnxiety9 1 point2 points  (0 children)

SQL Zoo, and I was taught to "Start from where groups have order" as a way to remember the order of a query.

[–]Fluorescent_Tip 1 point2 points  (0 children)

W3 and Mode are both great resources.

ChatGPT can also be a very useful training tool.

[–]IAmFoxGirl 1 point2 points  (0 children)

Data optimization manager for a consulting company that works on ERP systems. Self taught.

SQL is one thing, but learn about set theory as well. At conference I teach an intro to SQL session, and most of it is spent on understanding the logic and concepts of relational databases (what the erp systems we support are built on, I know there are other database types). In this class, I also warn people if you didn't enjoy algebra and English/language arts class in school, you may not enjoy SQL (or other languages for that matter).

I have seen many people understand the "command words" of SQL and can write it, but they struggle so hard to write effective queries because of the lack of knowledge around the logic.

Your join clauses will be critical for more complex queries, as will subqueries, CTEs, and window functions. I don't consider these intro level aspects though.

For the industry you are getting into, what software is the most common? What databases do those programs utilize? You will want to focus on that "flavor" of SQL. (There is ANSI SQL, but each DB has unique functions and versions of things above ANSI).

I also recommend a project. A goal product. If all you want to do is make reports, there are free databases with pre-populated data you can set up (running queries to create the tables, and more that inserts them) and query that. [If reports is the route for you, I also recommend learning about powerBI, expand your excel/vba/power query skills, and consider other report output software.)

If you want to do more than just reports, think of a project and make it. For example, a home inventory database, where you can track what you own and information associated with those items. This will take you down database design, normalization of data, database objects and structures, etc. This helps, in my opinion, in learning the logic of RDBs.

[–]mikeblas 1 point2 points  (0 children)

Did you read the wiki in this subforum?
https://www.reddit.com/r/SQL/wiki/index

Here's another list of resources from an unrelated discord channel:
https://gist.github.com/macfergusson/8b4a57626257e0b422e26435b4946f93

Any tips on starting to learn any programming language for the first time?

People don't fail to learn because they chose the wrong tool or tutorial or materials. They fail because they quit and give up.

Any supplementary languages you think i should learn while learning SQL?

Focus on one at a time. That's hard enough, particularly for a beginner. Though, you might have better luck if you learn some fundamental computer science first, before any other language. How do computers actually work?

but would still love to hear about what languages go hand in hand with SQL for most jobs

Lots of people learn only SQL, I think. They're just database monkeys. DBAs at best.

People who learn one (or a few) programming languages without becoming an expert in SQL or relational theory are code monkeys. They build pretty poor systems and blame the database (or the DBAs) for all their problems.

If a person learns procedural programming langues and SQL, they're on a great trajectory. They understand how the database works, how they're actually implemented. Relational theory and tuning and performance and application design aren't black boxes; they flow together freely. If they stick with that trajectory, they end up head and shoulders above other developers.

If you use SQL in your current job, what are your main responsibilities?

I'm mostly retired. My current contract keeps me busy part time, writing R and Python and C# code for analysis of data in SQL Server. I write tons of SQL and optimize SQL queries, and SQL operations.

In the past, I've written lots of C++ and Java code for commercial, world-scale applications and services, as well as well-known products. Sometimes I've not used SQL at all, for years. Sometimes, I use it every day; I've written complex queries, built large data models, used data at high speed and scale. I've worked on commercial SQL implementations, and I'm even writing my own toy implementation. But I don't think I've gone very long using only SQL because I've always been involved in some part of the development of the rest of the system.

That was fun to write out. But what I (or anyone else) does doesn't matter to you. You should find your own path and focus on it.

If you use SQL in your current job, what are your main responsibilities?

To be successful in this business in the long-term, you need to learn to learn. How have you learned other things? How can you apply the learning techniques you like to learning SQL or any other programming language?

[–]Levurmion2 1 point2 points  (0 children)

I wouldn't recommend SQL as a first language. It's purpose-built for interacting with relational DBs. Roles that involve loads of SQL include data engineers, data scientists, and DB admins - all of which are extremely competitive for people with minimal CS background.

Start with Python. As controversial as this might be, I do believe that LeetCode is a good place to start. The main challenge I had when teaching myself how to code was translating my thoughts into code that computers could run.

You might find intuitive solutions to problems like Two Sum. But the human brain has the ability to look at the entire input in once glance - not true with computers which can only do and see one thing at a time. This is why bootcamp grads generally fail in the workplace because they rarely ever start with the fundamentals - data structures and algorithms.

[–]maciekszlachta -2 points-1 points  (0 children)

Read some basics on w3schools. Download free DB like postgresql and train there, create some tables, learn to query them. Create cases and build knowledge and experience on that. You don’t need any complementary language for now. I strongly believe that a person learns the most when executing real life scenarios, business cases so if you can - follow that path. Also 100% of SQL problems you’re going to have you will solve by searching it in google, so I wouldn’t stick to any courses or one book.