To answer some questions some of you had, I applied mostly to jobs with "Software Engineer" somewhere in the description. Actual jobs that fit that description ranged from game designer to IT to app programmer to software engineer.
I suggest you find an actual field you're interested in and stick to that. Just sending a resume everywhere that says software engineering could land you in quite the boring job you don't like, which is not to say you won't like software engineering.
The field is quite diverse. There's quite the difference between a game designer (do those even write code ?) to IT (scripting/systems administration is not programming) to all other fields a programmer might fit in (web application developement != enterprise level J2EE application development != commercial retail software developer != custom form/report software development (think SAP/Remedy/Oracle data entry/querying solutions here like CRMs)).
While plenty of people are offering suggestions on what to learn, I don't see much in the way of suggestions on how to learn (or how deep I should learn... should I make a "Hello World"? Or do I need to do more to know the basics? Do I need to make a calculator? What do you even make with SQL? I've used core data before... Some... I don't really know how SQL even works without the aid of some other language... I don't really know how to explain what I mean by that.)
Grab a book and so some exercises. SQL is complex, going off the top of my mind for the acronyms here there's DML (INSERT, UPDATE, DELETE), DDL (CREATE, ALTER statements), etc..
Then there's PL/SQL (Procedural Language/Structured Query Language) for things like triggers. Triggers are simply called in the RDBMS when a specific event occurs. Things like "On Insert", "On Update", "On Delete". They can be used to create audit trails, manipulate data inserted by an app into a specific format suited for the underlying database (switching RDBMS without having to modify the app would be a good scenario for this).
Then there's types. All RDBMS have different types.
What do you make with SQL ? A data model. If you've never done proper database modelling, you should take this time you're learning SQL to learn how to properly do it. Avoiding the pitfalls of data normalization, learning what domain keys are, relations (single-to-single, single-to-multiple, multiple-to-multiple) and how to break them down in a queryable state, but also an updateable state where you suffer no data loss when manipulating records, primary keys...
Heck, once you've got a proper data model set up, just the query part should take you quite a while to master. Just break down say a Bill into a proper relation model, it will require quite a few tables of data in order to avoid the following pitfalls :
- Modifying your user's billing or shipping address should not impact older bills by this user
- Modifying tax percentages to reflect new laws in place should not affect older bills
- Make sure you can bill unlimited items on a single bill, with the limit being set by the application, not the RDBMS (not columns like item1, item2, item3, that's just stupid...).
- Modifying an item in your database should not change older bills for such items (pricing, name, description changes should not be reflected on bills that have the older item)
Right there is tons of fun. (not). If you manage to set this up, you'll be set to have tons of fun with just SELECT (inner/outer joins..) just to get all data for 1 bill ready to push to a view (you can write out a simple Perl script with DBI to display it using print statements if you don't want to mess around, or a simple webapp using PHP to produce a HTML version of the bill).
----------
From what you say, you are looking for "Software Engineer".
Someone step in and correct me if I'm wrong, but isn't that more 'writing to the chip' Asm/C type stuff? More in line with developing tools.
Consider yourself corrected. Software engineering is just that : Engineering software. There's all kind of software out there and it all requires design/analysis/implementation/q&a/deployment. Software engineering is the global umbrella that covers all of this.