Skip to main content

Getting started: Sharing your Oracle Database Developer experience

Last week, I was emailing back and forth with Paul, who is a senior developer/architect at a major financial firm. He is widely respected within the company, a valued resource for many development teams. He has also garnered the respect of the PL/SQL development team.

Yet Paul is not well known outside of his company. He does not use Twitter, does not have a blog.

I encouraged him to share his knowledge publicly and he asked me: "How should I get started?"

My first instinct was to say:
  • Register on the OTN Community!
  • Start a blog!
  • Start a Twitter account!
  • Set up a Facebook page!
  • Join LinkedIn!
  • etc.
etc. But then I reflected back on the effort it's taken me, "Oracle celebrity" me, to build up my Twitter following, get people to read the posts on my blog, and I decided to hold off on the instinctive response and instead ask myself:

How can someone who is technically strong but without name recognition contribute to the community in a way that doesn't feel like a waste of time (as in: "If a tree falls in the forest and no one is there to hear it....")?

So here goes:

1. Sure, go ahead and make sure you are fully social media-augmented. Create a Twitter account (and follow me @sfonplsql and oddly enough @stevefeuerstein). Create your Facebook page. Create your LinkedIn account. Make sure you are registered in the OTN Community. Etc.

Then follow people you respect who are present in these ecosystems. This is an incredibly important thing to do for all Oracle technologists (by which I mean: follow me! :-) ). Compared to many other programming communities, Oracle Database developers (SQL, PL/SQL, etc.) are not present to great numbers on Twitter. This means that the "big names" in this same arena lag behind the counts you will see, say, in the SQL Server world. 

And that sends the wrong signal about the vibrancy and breadth of our community. It's a numbers game and we need all of you to "be a number."

2. Make yourself heard on existing forums and popular accounts. Basically the advice "Go where everyone is and participate". 

Once you follow enough people on Twitter, you will have ample opportunity to read and respond to tweets in your area of experience. Ask questions, add nuance to a tweet, share your specific experiences. Go to StackOverflow and take a shot at answering questions. 

Do you read blogs of your favorite programmers and authors? Enter comments on their posts, adding your experiences, asking questions. Bloggers love getting comments and love answering questions. 

3. [With all proper approvals from your employer] Contribute to or otherwise support open source projects for Oracle Database developers. While open source doesn't play a very big role in our lives now, it can only increase over time. Check out the following:
  • OraOpenSource - "Build great open source products for Oracle."
  • Alexandria Library - "A collection of various utility packages for PL/SQL, as well as links to useful libraries hosted and maintained elsewhere."
Don't expect your life to be changed overnight. It takes time to be noticed in a world in which everyone has a voice, and we all go on and on.

Do you have other suggestions for getting started, building a following, sharing your expertise? Please, then, post a comment!

Comments

  1. Thanks Steve, An interesting post. This helped push me over the edge and I decided to take the plunge and have started a blog about sql tuning.
    https://community.oracle.com/people/n1ckst/blog?customTheme=otn

    ReplyDelete

Post a Comment

Popular posts from this blog

Running out of PGA memory with MULTISET ops? Watch out for DISTINCT!

A PL/SQL team inside Oracle made excellent use of nested tables and MULTISET operators in SQL, blending data in tables with procedurally-generated datasets (nested tables).  All was going well when they hit the dreaded: ORA-04030: out of process memory when trying to allocate 2032 bytes  They asked for my help.  The error occurred on this SELECT: SELECT  *    FROM header_tab trx    WHERE (generated_ntab1 SUBMULTISET OF trx.column_ntab)       AND ((trx.column_ntab MULTISET             EXCEPT DISTINCT generated_ntab2) IS EMPTY) The problem is clearly related to the use of those nested tables. Now, there was clearly sufficient PGA for the nested tables themselves. So the problem was in executing the MULTISET-related functionality. We talked for a bit about dropping the use of nested tables and instead doing everything in SQL, to avoid the PGA error. That would, however require lots of work, revamping algorithms, ensuring correctness, you know the score. Then my eyes snagge

How to Pick the Limit for BULK COLLECT

This question rolled into my In Box today: In the case of using the LIMIT clause of BULK COLLECT, how do we decide what value to use for the limit? First I give the quick answer, then I provide support for that answer Quick Answer Start with 100. That's the default (and only) setting for cursor FOR loop optimizations. It offers a sweet spot of improved performance over row-by-row and not-too-much PGA memory consumption. Test to see if that's fast enough (likely will be for many cases). If not, try higher values until you reach the performance level you need - and you are not consuming too much PGA memory.  Don't hard-code the limit value: make it a parameter to your subprogram or a constant in a package specification. Don't put anything in the collection you don't need. [from Giulio Dottorini] Remember: each session that runs this code will use that amount of memory. Background When you use BULK COLLECT, you retrieve more than row with each fetch,

Quick Guide to User-Defined Types in Oracle PL/SQL

A Twitter follower recently asked for more information on user-defined types in the PL/SQL language, and I figured the best way to answer is to offer up this blog post. PL/SQL is a strongly-typed language . Before you can work with a variable or constant, it must be declared with a type (yes, PL/SQL also supports lots of implicit conversions from one type to another, but still, everything must be declared with a type). PL/SQL offers a wide array of pre-defined data types , both in the language natively (such as VARCHAR2, PLS_INTEGER, BOOLEAN, etc.) and in a variety of supplied packages (e.g., the NUMBER_TABLE collection type in the DBMS_SQL package). Data types in PL/SQL can be scalars, such as strings and numbers, or composite (consisting of one or more scalars), such as record types, collection types and object types. You can't really declare your own "user-defined" scalars, though you can define subtypes  from those scalars, which can be very helpful from the p