views:

662

answers:

7

Hi Stackers

After reading Bil Simser blog post Being a Better Developer... in 6 months I agree with his headlines which are:

• Reading

• Writing

• Speaking

• Community

• Learning

• Code, Code, Code and more code

But I’ve a specific question "How to be a better database developer (specially Sql-Server developer)" and wish for more specific answers

like blogs urls, magazines names, books titles,

community list, tools recommendations,

databases samples, learning plans,

Update: Complex problems I should have solutions for it

and any extra thing you find it worthy for being better database developer

+2  A: 

Blog URLs are easy. The PASS website has a very long list of blogs on it (including mine). As for magazines there aren't a whole lot of print SQL Server Magazines, SQL Server Magazine being the biggest. The Pass Website also has a lot of links to community events and local PASS chapters.

As for Tools Check out Quest Software, Redgate Software, Lumigent, and Idera. They are the big players (I prefer Quest's products myself).

mrdenny
+1  A: 

Be passionate about what you do. Discover things. Read articles and blogs. Don't be scared away by problems and complex solutions, learn them and embrace them.

If you spent this 12 months in the right fashion, you will surprise and maybe scare yourself and your colleagues after 12 months.

User
I'm searching for problems list that may face database developer,Some thing near to this, http://stackoverflow.com/questions/145689/relational-database-design-patterns
Ahmed Mozaly
+2  A: 

There are many different things you can do to become a better database developer. Of course, reading blogs, website, books etc. and never stop reading, as there will always be something new to learn.

I can recommend reading anything by Joe Celko as he is a guru when it comes to SQL and databases (not necessarily specific to MS SQL Server, but general ANSI SQL), and was (not sure if he still is) quite active in many usenet newsgroups concerning SQL/databases.

For something specific to MS SQL Server, one thing I like to do is to try to not use the GUI tools (Management Studio), but to rather re-create everything that you would normally do in the Management Studio in pure TSQL. For example, we probably all use the Management Studio for creating new tables, fields, adding indexes etc. and most of the time not really thinking about what it's doing "underneath". The Management Studio is just automating the TSQL that's needed for accomplishing these tasks, so it can be quite fun from time to time to only use pure TSQL for adding your tables, fields, indexes etc. since a lot of this side of the TSQL language is something that's not used as often as the "standard" part of TSQL used for your CRUD queries. Obviously, it's usually much quicker to accomplish these tasks using the GUI tools, but from a learning perspective, I found that it helped a lot.

CraigTP
+7  A: 

Learn to understand the fundamentals of relational databases:

  • understand relational algebra. This a branch of math with operations that work on sets rather than e.g. numbers. It is actually pretty simple, and if you get the concept of always working with sets, you will be able to use SQL much more efficiently.

  • understand the concept of normalization. This is the rules for how to structure tables such that you avoid redundancy and integrity errors. Again, this is a pretty simple concept, but may be hard to grasp since it is often presented in very dense language in textbooks.

  • understand the concept of logical versus physical tables. This allows you to optimize database access e.g. by using materialized views, without compromising integrity.

If you understand these concept (which are actually pretty simple), you are already far ahead of many database developers.

JacquesB
Normalization: I've worked with a team that got it and another that didn't. Queries are MUCH easier when your team understands normalization and uses it correctly.
Pulsehead
I'm not sure that whoever invented SQL understood relational algebra. Tables are not relations, rows are not tuples. RDF or Tutorial D are much closer.
Pete Kirkham
@Kirkham: SQL supports relational algebra AFAIK, it's just that it also supports a bunch of non-relational features like tables with duplicate rows. Regardless, knowing relational algebra will help you understand SQL and its limitations much better.
JacquesB
What about book titles ?
Ahmed Mozaly
+1  A: 

Learn something beyond simple apps(blog apps comes to mind), learn how enterprise and complex systems are implemented. Use a stricter database when it comes to data and relational integrity.

Learn how to create reports(the bottomline of all database apps) from pure query, without the aid from reporting tools(e.g. Crystal reports), crystal reports and the likes should be just a thin presentation layer for displaying the results of your report's query.

Michael Buen
Do you have some "Beyond simple apps" links ?I'm thinking of SQL Server 2008 Sample databaseshttp://www.codeplex.com/dropthingswww.subtextproject.comASP.NET starter kitsAny help with extra online database samples ?
Ahmed Mozaly
Learn complex apps like financial, inventory or billing systems. Or try open-source system like xTuple or OpenBravo
Michael Buen
+2  A: 

I will share you my plan after modifying it by your contributions (this answer make use of all these guys efforts: olavk, Constantin, Pulsehead,Pete Kirkham,mrdenny,so-tester,CraigTP,Michael Buen)

1st iteration: (the hardest one) Find 2 samurais

Choose a teacher: from your submitted 180 blogs url I've to choose the most one I will learn from him (Please help choosing teacher even if not from @mrdenny submitted 180 blog list)

And have a colleague: I have to find another guy that want to be better database developer (any volunteers? warning: the mission is 12 month long)

2nd iteration: Changing old habits & Back to basics

• T-SQL over Management Studio

MCITP: Database Developer

Head First SQL: Your Brain on SQL

The Guru's Guide to Transact-SQL

Joe Celko's Thinking in Sets for Relational algebra, normalization, logical versus physical tables, (suggest more please)

• Subscribe to SQL Server Magazine

• Start blogging about my database development junry

• Start engaging database communities like stackoverflow[database tags], sqlpass.org , sqlcommunity.com, (suggest more please)

3rd iteration: Start walking, looking around and making some noise

Applied Mathematics for Database Professionals

The Art of SQL

Expert SQL Server 2005 Development

SQL Server 2005 T-SQL Recipes: A Problem-Solution Approach

• Start looking at database samples like xTuple.com, openbravo.com, Sql Server 2008 database samples, ASP.NET Starter kits databases (suggest more please)

• Trying to write some articles for MSDN, Sql Communities, Sql Magazines

• Start making video tutorial and publishing it

4th Iteration: Make a dive

Database in Depth: Relational Theory for Practitioners

Microsoft SQL Server 2008 Internals

Inside Microsoft SQL Server 2008: T-SQL Querying

SQL Tuning

• Start making podcasts

• Start using tools for profiling, performance monitoring,…

5th Iteration: Design and putting my knowledge into test

Beginning Database Design: From Novice to Professional

Data Model Patterns: Conventions of Thought

Pro SQL Server 2005 Database Design and Optimization

Refactoring Databases: Evolutionary Database Design

• Start special focus on assessments, challenges, interview questions,….


Please if you have any thing that can enhance this plan, don't hesitate to mention it or even editing this answer if it possible

Ahmed Mozaly
+2  A: 

I would strongly suggest that you check out SQL Server Central. I have learned a lot from that site and find the daily email with a few highlighted articles to teach me a little bit each day.

YonahW