First, while you may be able to find Postgres specific Database Engineer positions - you're probably going to have to switch to one of the big two (Oracle or SQL Server) to have your pick of the job market.
From there, study Relational Database Theory and Database Design (designing databases from the ground up). The book I suggest for beginners is Database Design for Mere Mortals.
You can then branch off into such things as Report Development with SSRS, Crystal, Actuate, etc. or ETL Development is also a possibility. Or you may go the more general route of wielding a heavy and expert knowledge of T-SQL (Microsoft) or PL/SQL (Oracle).
There are many disciplines within the area of databases. Lots of cross training usually exists between these areas though. So every database-related job is different. Some are just focused on a specific area and some require knowledge of everything.
If you're serious about getting into software development, I'd recommend you start looking into data structures and algorithms as well. It's something I think a lot of people who were self-taught tend to miss because it's not required knowledge to program, but it will give you a huge competitive advantage.
While I haven't read it, this book seems like a good introduction to the concept: https://smile.amazon.com/dp/1617292230/?coliid=I34MEOIX2VL8U8&colid=MEZKMZI215ZL&psc=0
From there I'd recommend looking at MIT's Intro to Algorithms, 3rd Edition. A bit more advanced, but the topics in there will play a huge role in getting a job in software.
The Data Warehouse Toolkit by Kimball was recommended to me as "The Source" for DW. I just started reading it, so no experience yet.
The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition https://www.amazon.com/dp/1118530802/ref=cm_sw_r_cp_apa_i_LZ-7CbHQTXGRM
This book was passed around my first jobs office to us interns as we scrambled to learn all we could to get promoted to a junior position... it kick started my career.
Not strictly DE, but https://www.amazon.com/Schema-Complete-Reference-Christopher-Adamson/dp/0071744320/ref=nodl_ . I found the idea of dimensional modeling/star schema to be something people would talk about in the abstract, but never anything real. This book helped me out a lot. Perhaps not as useful as it was 10yr ago, but there’s still some gems in there.
I think this is a great beginners / fundamentals book. It will give you an in depth focus on the basics:
​
If you're majoring in Computer Science at basically any university, a course on the subject will probably be required for the major. So, if you're not in a rush, you can probably tackle it as part of the natural progression.
If you want an easy to digest resource that still does a good job covering the concepts to prepare, though, I would always recommend Grokking Algorithms. I link to Amazon because I like having hard copies of everything on hand, but I believe you can also find this exact book online with some Googling.
Maybe I can contribute this this discussion. I am an engineer (electrical) learning software dev as well. Algorithms was a required course in my program. Code is an algorithm. Studying algorithms gives people an insight on how to write better code by considering time/space complexity and accounting for edge cases.
Do not go into algorithms because employers ask for it and you need to memorize certain algos to get a job. This approach will lead you nowhere and you will just lose time. Study algorithms with this thought in your head: "How is this algorithm can applied to the code I have written in the past? Can I use some steps in my code? How does computational complexity behaves if the data/input goes up?" Algorithms can truly be fun once your frame your thought process in terms of steps. Knowing how your code behaves is also the first step in optimizing your code. It is true that you can have a successful software dev career without learning algorithms, but it is very difficult to optimize performance of your code without the knowledge that comes with understanding algorithms and algo analysis.
This way you should be able to connect formal definitions of some algos to real life applications. There are many algorithms out there but when you see an algorithms on the job requirements list know that they are not asking if you have memorized some popular algos, they ask if you can think in steps and/or write code that uses algos in full or partially.
I read "Artificial Intelligence: A Modern Approach" but a lot of the stuff went over my head. I found Grokking algorithms to be a good foundation when I started getting deep into this topic. After that, I read AIMA again and it made much more sense.
I like this one: Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People (Amazon) it explains algorithms in plain English, with real life situations and also uses pseudocode and then python to solve
Personally, I build a neural net from scratch using only python builtins and deploy it via an API. You could build some utilities to convert it to ONNX if you’re feeling hardcore. This book will help you with the neural net parts. This basically hits all the major areas except front end.
I recommend deploying your model because it will get you comfortable thinking about production requirements and their assumptions. A lot of people can train models. Way fewer people can train them and expose them to the world. Ultimately our goal is to get people to use our work.
As someone who has also made the DS → DE transition, your focus will (broadly speaking) shift from "how can I use this data?" to "how can I help others use this data?"
To help answer that question, I got the most bang for my buck studying dimensional modeling. Classics include The Data Warehouse Toolkit and Agile Data Warehouse Design.
Which specific tools/libraries you should learn depends on your new role. Given that you're entering an AWS shop, I assume DMS and Glue are on the table.
Grokking Algorithms is not bad as I recall, but A Common-Sense Guide to Data Structures and Algorithms was the last one I read, and I find it by far the most solid (or at least for any beginner starting from scratch, I think). The author has really taken his work with the explanations and the pace with which he introduces the topics. The only complaint I can think of is with respect to the code examples, which I would have preferred if they were all in Python or Javascript, and not a mix of these 2 and Ruby (or mostly the latter for that matter, which is not as intuitive to read for someone who doesn't know the language beforehand).
I read a half dozen algo books years ago when learning. Mastery came slowly for be, but it was a fun process. My favorite for beginners is this one by Lafore. My favorite overall is The Algorithm Design Manual by Skiena.
Have a nice “coachable” read.
Wouldn’t recommended this at all. Agree with the other person. It’s not a good book for teaching and understanding more of high level refresher with a lot of questions. I personally don’t like the style it teaches and it assumes too much.
For learning the basics of the data structures I found this book really good, explained things very clearly.
https://www.amazon.co.uk/Data-Structures-Algorithms-Robert-Lafore/dp/0672324539
https://www.amazon.com.br/Data-Warehouse-Toolkit-Definitive-Dimensional/dp/1118530802
A 3 edição nao tem em ptbr. Só a segunda ed.
https://www.holistics.io/blog/how-to-read-data-warehouse-toolkit/
Devido a isso recomendo a 3ª
I recommend getting Grokking Algorithms by Aditya Bhargava and pairing that with [structy](structy.net). The book is illustrated, programmed in Python, and intuitive. Structy provides video instruction and an environment to code DSA in Python, JavaScript, and C++. Structy is a paid subscription by my favorite programming instructor from freecodecamp on youtube. The website has videos, guides, lets you practice DSA problems, and has solutions all in one place. I found it very worth it.
There are plenty of free resources online to learn DSA. You can get a free account on structy and then just youtube/google the section title for free resources. I needed the easy access, accountability, and structure of the book PLUS structy to learn.
I think DSAs should be taught in a separate course from intro to programming. I also used to think people should be comfortable with the fundamentals of programming in one language before they give bandwidth to DSA. You won't really have the tools to manipulate and implement data structures and algorithms if you don't have mastery of the fundamentals. However, now that I've done structy I like the way it is structured and I kind of get the impression that you don't necessarily need to be as competent with the fundamentals to understand and use the material.
If you want a follow-up DSA text, or just want a more robust reference, then I recommend the Algorithms textbook
Para algoritmos hace poco estuve echándole un ojo a un libro que recomiendan mucho: Grokking Algorithms. Su edición en español se llama Algoritmos : guía ilustrada para programadores y curiosos, aunque los comentarios dicen que no es muy buena traducción.
OP - this is a more beginners book written by the same person. If you have no real experience with SQL, READ this one first I did.
However , this is only if the job you are applying for uses Microsoft SQL server or Azure or anything Microsoft really. You will learn a lot from the book either way, but it's kinda pointless if you are going to be using something like Oracle or MySQL in practice.
Grokking Algorithms é uma primeira jornada bem bacana pra pessoas com pouca experiência e sem muita base matemática. após a leitura você deve sair com uma boa noção intuitiva sobre alguns tópicos que envolvem algoritmos.
Pretty sure it’s a course. There is a book called Grokking Algorithms which has been hugely helpful for me.
Link: https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230
Yes and yes, but this book covers all the same concepts in a very readable but shorter book
Star Schema The Complete Reference https://www.amazon.com/dp/0071744320/ref=cm_sw_r_awdo_CE4YNSVYEHQCF9ERSZXZ
The Kimball Data Warehouse Toolkit is probably the definitive answer, but Star Schema: The Complete Reference does a great job of distilling the concepts into a very readable (and shorter) book. https://www.amazon.com/Schema-Complete-Reference-Christopher-Adamson/dp/0071744320?ref_=d6k_applink_bb_dls&dplnkId=4194aa11-94d8-4bfe-b4a3-6bbb471f4e9c
Ova knjiga je meni pomogla. Sve je objasnjeno kroz ilustracije i realne primere tako da svako moze da shvati. Pronadji pdf po netu pa pogledaj.
Ah man... My Google Fu deserted me. I couldn't find a version called a "Definitive guide...". I wonder, are they possibly published with different titles in different territories?
Hang on... This is the version I have. It seems I may be splitting heirs over titles and subtitles (what a douche 🤦♂️) ...I guess this puts me firmly in the reject pile 😭
The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition https://www.amazon.co.uk/dp/1118530802/ref=cm_sw_r_apan_i_VAWAXBY7TRS6VYKPM5FD
I don't think so...
You should give "The Data Warehouse Toolkit" a read.
The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling, 3rd Edition https://www.amazon.com/dp/1118530802/ref=cm_sw_r_apan_i_XM6AVWWD293EBY2GAGZZ
Depends on what you value. Do you want to get real heavy in the theory and learn or are you trying to get a job? Honestly I will probably get downvoted, but I think CLRS is a waste of time unless its the former.
If its the latter then these are more digestible than CLRS.