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

Why DBMS_OUTPUT.PUT_LINE should not be in your application code

A database developer recently came across my  Bulletproof PL/SQL  presentation, which includes this slide. That first item in the list caught his attention: Never put calls to DBMS_OUTPUT.PUT_LINE in your application code. So he sent me an email asking why I would say that. Well, I suppose that is the problem with publishing slide decks. All the explanatory verbiage is missing. I suppose maybe I should do a video. :-) But in the meantime, allow me to explain. First, what does DBMS_OUTPUT.PUT_LINE do? It writes text out to a buffer, and when your current PL/SQL block terminates, the buffer is displayed on your screen. [Note: there can be more to it than that. For example, you could in your own code call DBMS_OUTPUT.GET_LINE(S) to get the contents of the buffer and do something with it, but I will keep things simple right now.] Second, if I am telling you not to use this built-in, how could text from your program be displayed on your screen? Not without a lot o...

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, ...

Table Functions, Part 1: Introduction and Exploration

Please do feel encouraged to read this and my other posts on table functions, but you will learn much more about table functions by taking my Get Started with PL/SQL Table Functions class at the Oracle Dev Gym. Videos, tutorials and quizzes - then print a certificate when you are done! Table functions - functions that can be called in the FROM clause of a query from inside the TABLE operator - are fascinating and incredibly helpful constructs. So I've decided to write a series of blog posts on them: how to build them, how to use them, issues you might run into. Of course, I am not the first to do so. I encourage to check out the  documentation , as well as excellent posts from Adrian Billington (search for "table functions") and Tim Hall . Adrian and Tim mostly focus on pipelined table functions, a specialized variant of table functions designed to improve performance and reduce PGA consumption. I will take a look at pipelined table functions in the latter part...