Please start any new threads on our new site at https://forums.sqlteam.com. We've got lots of great SQL Server experts to answer whatever question you can come up with.

 All Forums
 Site Related Forums
 The Yak Corral
 sql programming and other languages

Author  Topic 

joe8079
Posting Yak Master

127 Posts

Posted - 2012-06-30 : 11:42:30
Not sure where to post this but would you say becoming a pro at SQL programming is easier than say Java or other programming languages? The reason I ask is one of the programmers at my job said if he needed to he could learn SQL in a week and I kind of took offense to that because it has taken me and other people on my team some time to really develop to where we're at now. I would say we're at a pretty high level using the optimizer, dynamic queries and all kinds of other tools and for someone to say they could learn this in a week was kind offensive.

sunitabeck
Master Smack Fu Yak Hacker

5155 Posts

Posted - 2012-06-30 : 13:56:06
quote:
Originally posted by joe8079

Not sure where to post this but would you say becoming a pro at SQL programming is easier than say Java or other programming languages? The reason I ask is one of the programmers at my job said if he needed to he could learn SQL in a week and I kind of took offense to that because it has taken me and other people on my team some time to really develop to where we're at now. I would say we're at a pretty high level using the optimizer, dynamic queries and all kinds of other tools and for someone to say they could learn this in a week was kind offensive.

Your colleague is just as much right as the person who suggests that it is easy to learn chess. It probably takes a few days to master the basic chess moves. But if you want to get to a rating of 1,800, it would take several months or even years of practice for most of us. Almost all of us, with the exception of the gifted few can forget about getting to 2,400.

And so it is with SQL programming. Most of us can learn to write "SELECT * FROM Customers" just as easily as the beginning chess player who easily learns the first few moves of the Kings Indian Defense. But to write bug-free reliable queries that will perform well takes a much deeper understanding of relational databases and SQL Server's implementation of it. Except for those among us who can walk on water without the aid of jet skis would find getting to that level of understanding of SQL takes months and years of learning and practice.

I would go one step further and suggest that it is harder to learn and be a good SQL programmer than to learn .Net or Java programming. Most of us can naturally think in terms of procedural programming and object-oriented designs. But to think in sets and do set-based programming which is at the heart of database programming takes a special mind-set and is harder - because most human beings don't naturally think in sets. I am not just bloviating - I used to be a .Net programmer until recently.

In a lot of SQL databases, you will see cursors and while loops being used liberally. Without a doubt, novice chess players or Java programmers who learned SQL in one week wrote those queries. Unfortunately (or fortunately) SQL Server, like a Stradivarius, quite often makes even mediocre players sound awesome.
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2012-06-30 : 16:00:54
That remark was probably meant as an insult.

I would give more credibility to a comment from someone who had actually mastered TSQL, Java, and several other languages.

My guess would be that they haven't mastered any programming languages, so had no basis for that statement. It's easy to run your mouth about something you don't understand.


I'm fairly certain that I could master quantum mechanics, general relativity, and string theory in about a week if I really wanted to.







CODO ERGO SUM
Go to Top of Page

joe8079
Posting Yak Master

127 Posts

Posted - 2012-06-30 : 16:42:59
thanks, I feel a lot better. I do feel mastering SQL takes time and patience and it is not something you pick up over night.
Go to Top of Page

madhivanan
Premature Yak Congratulator

22864 Posts

Posted - 2012-07-02 : 02:07:18
Getting into basic learning is easy not only in sql

Madhivanan

Failing to plan is Planning to fail
Go to Top of Page

elwoos
Master Smack Fu Yak Hacker

2052 Posts

Posted - 2012-07-02 : 06:16:02
Some time ago a computing lecturer claimed that if you knew one programming language you could learn another in a week or two. At the time he may not have been too far off the mark. Even if it was true then I'm not sure it is now.

The difference with SQL is the kind of mindset you need, if you can think in terms of sets you will grasp it a lot quicker. All too often on these forums there have been examples of where developers had "learnt" SQL and written some of the most horrible code ever seen because they don't have the mindset. If you don't believe me just search for cursors.

As others have said you can learn the basics fairly readily but mastery is a whole different ball game. Thankfully we have SQLTeam

-----------

Insanity: doing the same thing over and over again and expecting different results.
Go to Top of Page

robvolk
Most Valuable Yak

15732 Posts

Posted - 2012-07-02 : 06:55:21
http://pragprog.com/book/btlang/seven-languages-in-seven-weeks

If your co-worker can knock out that book in the prescribed seven weeks, then maybe they can learn SQL in another week. UNTIL they do that, however...
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2012-07-02 : 08:31:37
quote:
Originally posted by robvolk

http://pragprog.com/book/btlang/seven-languages-in-seven-weeks

If your co-worker can knock out that book in the prescribed seven weeks, then maybe they can learn SQL in another week. UNTIL they do that, however...



I've haven't even heard of five of the seven languages.





CODO ERGO SUM
Go to Top of Page

Michael Valentine Jones
Yak DBA Kernel (pronounced Colonel)

7020 Posts

Posted - 2012-07-02 : 08:35:51
Of course, some people are better than others at learning new languages.

http://en.wikipedia.org/wiki/Richard_Francis_Burton
"...He was known for his travels and explorations within Asia, Africa and the Americas as well as his extraordinary knowledge of languages and cultures. According to one count, he spoke 29 European, Asian and African languages..."






CODO ERGO SUM
Go to Top of Page

joe8079
Posting Yak Master

127 Posts

Posted - 2012-07-02 : 17:00:09
this is good to know, just wanted to make sure other people felt the same way. Anyway, my co worker is a java/php developer and is kind of arrogant so this def makes me feel better.
Go to Top of Page

robvolk
Most Valuable Yak

15732 Posts

Posted - 2012-07-02 : 17:21:44
quote:
Anyway, my co worker is a java/php developer and is kind of arrogant
Kinda redundant, isn't it? I can GUARANTEE you they know nothing about SQL.

This will make you feel better:

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html
http://www.codinghorror.com/blog/2012/06/the-php-singularity.html

Go to Top of Page

X002548
Not Just a Number

15586 Posts

Posted - 2012-07-04 : 12:52:48
What about their credentials?
Go to Top of Page

nigelrivett
Master Smack Fu Yak Hacker

3385 Posts

Posted - 2012-07-04 : 13:39:22
He's right. Just like you can learn any language (including Java and php) in a few days.
You can also go on a course and learn what's available in a week.

Whether you will know how to use it is another matter.

I usually reckon I can get to the level in a few weeks that a lot of people who claim to know a language are at (just because I know a lot of languages). To be competant at a basic level I would say takes a couple of years solid usage and a willingness to learn.

==========================================
Cursors are useful if you don't know sql.
SSIS can be used in a similar way.
Beer is not cold and it isn't fizzy.
Go to Top of Page

StFe
Starting Member

44 Posts

Posted - 2012-07-04 : 14:49:23
Of course, SQL is much a simpler lang than e.g. C++.
Plus, it is a declarative lang and afaik it was invented
for managers and other "profanes".
Go to Top of Page

Transact Charlie
Master Smack Fu Yak Hacker

3451 Posts

Posted - 2012-07-05 : 06:34:01
interesting topic. Kudos!

Seven languages in Seven weeks is a very good book. I really like the Pragmatic series as a whole. Shame they included Ruby rather than python as I much prefer python's practicality (though they are almost interchangeable)

For this audience I can thourougly recommend: Seven Databases in Seven Weeks. It covers Postgres as the introduction to relational databases then delves into a bunch of different NoSql solutions.

Riak in particular is amazing as a distributed massively scaleable key value store -- which auto distributes and has a great take on the CAP theorem (Consistency / Availability / Partition tolerance). The architecture of Riak will blow you away when you get into it's workings.
If you want to add more capacity and performance to a riak cluster you simply fire up a new instance and attach it. Riak will do the rest!

And Neo4J will make you think about your data in a whole new way - if you can get your head around the graph theory.....

For me:

A good database developer (or data developer) doesn't just know how to write boilerplate SQL. You need to know about normalization - when and when to stop, have a working grasp of set theory (but also realize that the engine you use really does do things in a procedural way 'under the hood'. You need to be able to model your data for the task at hand. Also you need to be familiar not just with 'a language' but with a whole application stack (sql server / oracle / whatever) and know how to get the best out of that stack (index types / execution plans etc)

just because Sql is (ostensibly) a declarative language does not mean that it is always easy to BE declarative. CURSOR's are a prime example of this -- they are a declarative failure.

I started my career in development as a pure SQL dev. The declarative emphasis is something that I take with me whenever I use another language. That's one of the reasons I like linq in .net (note that linq is NOT THE SAME as linq2sql which is horrible)

For every language you use you should know the paradigm of the language -- sql is declarative and set based. .Net is a general purpose object oriented language - python a dynamic duck typed extensible interpreted language where if you need to do something that isn't your buisness logic then someone else will have done it all-ready....

For anyone to say they could learn a language in a week to a professional level is absurd these days. More so if those languages have no paradigm in common. Compare moving between java and c#.net or SqlServer to Postgres against pure C to a lisp based functional language like clojure.

if the paradigm is the same then you will pick up the syntax fast.

If the whole concept of the languages are different then you will not appreciate the 'why' of the language for a long time.

Transact Charlie

Msg 3903.. The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION.
Go to Top of Page

X002548
Not Just a Number

15586 Posts

Posted - 2012-07-05 : 10:49:45
quote:
Originally posted by StFe

Of course, SQL is much a simpler lang than e.g. C++.
Plus, it is a declarative lang and afaik it was invented
for managers and other "profanes".




Really...I find this amusing
Go to Top of Page

X002548
Not Just a Number

15586 Posts

Posted - 2012-07-05 : 10:50:27
Try Assembler
Go to Top of Page

DonAtWork
Master Smack Fu Yak Hacker

2167 Posts

Posted - 2012-07-05 : 11:42:44
Best programming language evar: http://en.wikipedia.org/wiki/Whitespace_%28programming_language%29








How to ask: http://weblogs.sqlteam.com/brettk/archive/2005/05/25/5276.aspx

Go to Top of Page

Transact Charlie
Master Smack Fu Yak Hacker

3451 Posts

Posted - 2012-07-05 : 12:09:50
I thought you may have squeezed in a little code sample between your post and signature there. but no: just a bunch of carriage returns......

Transact Charlie

Msg 3903.. The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION.
Go to Top of Page

StFe
Starting Member

44 Posts

Posted - 2012-07-05 : 12:10:01
Always thought it's Brainf**k, now it's Whitespace.
My favorite langs are C++ (know from it only abt. 20-30%%, only its modest subset),
Python 2.5 and hmm... PHP v.5 and higher.
As to (pure) SQL, I don't know what else I'd code in it.
But, if honestly, I'm a bit tired of programming.
Dreaming about some serene, rural life heh
Go to Top of Page

StFe
Starting Member

44 Posts

Posted - 2012-07-05 : 12:11:27
quote:
Originally posted by Transact Charlie

I thought you may have squeezed in a little code sample between your post and signature there. but no: just a bunch of carriage returns......

Transact Charlie

Msg 3903.. The ROLLBACK TRANSACTION request has no corresponding BEGIN TRANSACTION.



hahahahahahahahahahhahahhahahahhahah!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Go to Top of Page
    Next Page

- Advertisement -