Complete IT Professional http://www.completeitprofessional.com Helping Software Developers Get Ahead In Their Careers Thu, 22 Jan 2015 11:30:00 +0000 en-US hourly 1 http://wordpress.org/?v=4.1 Oracle INSTR Function Explained with Exampleshttp://www.completeitprofessional.com/oracle-instr/ http://www.completeitprofessional.com/oracle-instr/#comments Thu, 22 Jan 2015 11:30:00 +0000 http://www.completeitprofessional.com/?p=3149 ]]> Oracle FunctionThe Oracle INSTR function is a common string manipulation function, and exists in many variations of SQL. Let’s have a look at the Oracle version along with some examples.

Purpose of the Oracle INSTR Function

The Oracle INSTR function allows you to search a string, for the occurrence of another string, and return the position of the occurrence within the string.

It’s good for finding if a string exists in another string, and also for performing additional tasks on, like other text manipulation functions or updating data.

Both the string and substring parameters can be any of the following data types:

  • CHAR
  • VARCHAR2
  • NCHAR
  • NVARCHAR2
  • CLOB
  • NCLOB

 

Syntax

The syntax for the INSTR function is:

INSTR( string, substring, [start_position], [occurrence] )

This Oracle INSTR function is actually different from other functions in that it has several different versions. Each of them vary in how they determine the position of the substring to return:

  • INSTR calculates the length using characters defined by the input character set.
  • INSTRB calculates the length using bytes.
  • INSTRC calculates the length using Unicode complete characters.
  • INSTR2 calculates the lengths using USC2 code points.
  • INSTR4 calculates the lengths using USC4 code points.

 

Parameters

The parameters of the INSTR function are:

  • string (mandatory): This is the text string that is searched in. It is usually the larger of the two strings. If you are looking to “find X within Y”, this is the Y component.
  • substring (mandatory): This is the text string that is searched for. It is usually the smaller of the two strings. If you are looking to “find X within Y”, this is the X component.
  • start_position (optional): This is a nonzero integer, and indicates where in the string value to start the search. The default is 1, which is the start of the string. If it is negative, the function searches and counts from the end of string and goes backwards.
  • occurrence (optional): This is a positive integer, and indicates which occurrence of the substring the function should search for. The default value is 1, which means the functions searches for the first occurrence.

The search performed in this function is case-sensitive.

 

Oracle INSTR Return Value

The function returns a NUMBER value, which is the number in the location of the string where the substring is found. The numbering starts at 1, so if it is the first character, the function will return 1.

If substring is not found, the function will return a zero (o).

 

Examples of the INSTR Function

Here are some examples of the Oracle INSTR function. I find that examples are the best way for me to learn about code, even with the explanation above.

Example 1:

This example just searches for the first occurrence of the letter “e”.

SELECT INSTR('Melbourne, Australia', 'e') FROM DUAL;

Result:

2

 

Example 2:

This example searches for the first occurrence of the letter “m” (note that it is in lower case).

SELECT INSTR('Melbourne, Australia', 'm') FROM DUAL;

Result:

0

 

Example 3:

This example searches for an uppercase “M”.

SELECT INSTR('Melbourne, Australia', 'M') FROM DUAL;

Result:

1

 

Example 4:

This example searches for the letter “e”, starting from position 1 and finding the second occurrence.

SELECT INSTR('Melbourne, Australia', 'e', 1, 2) FROM DUAL;

Result:

9

This is the “e” at the end of the word “Melbourne”.

 

Example 5:

This example searches for the letter “e”, starting from position 5, and finding the first occurrence.

SELECT INSTR('Melbourne, Australia', 'e', 5, 1) FROM DUAL;

Result:

9

This is the “e” at the end of the word “Melbourne”.

 

Example 6:

This example searches for the letter “e”, starting from position 5, and finding the second occurrence.

SELECT INSTR('Melbourne, Australia', 'e', 5, 2) FROM DUAL;

Result:

0

No second occurrence of “e” is found after this point.

 

Example 7:

This example searches for the string “bou” within the entire string.

SELECT INSTR('Melbourne, Australia', 'bou') FROM DUAL;

Result:

4

 

Example 8:

This example searches for the letter “a” but starts from the end of the string.

SELECT INSTR('Melbourne, Australia', 'a', -1) FROM DUAL;

Result:

20

The first “a” that is found is the value at the end of “Australia”.

 

Example 9:

This example searches for the letter “a”, but starts from the end of the string, and finds the second occurrence.

SELECT INSTR('Melbourne, Australia', 'a', -1, 2) FROM DUAL;

Result:

17

This is the “a” that is found in the middle of the word “Australia”, as it is the second occurrence working backward from the string.

 

Similar Functions

Some functions which are similar to the INSTR function are:

  • REGEXP_INSTR – Similar to the INSTR function, but allows for regular expressions.
  • LENGTH – Returns the length of the provided string.
  • REPLACE – Replaces one string with another string in the provided value.
  • SUBSTR – Returns a part of the provided string, based on the specified position and length.

 

Video

For an example of this function, watch the video here.

(Coming Soon)

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of digitalart / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/oracle-instr/feed/ 0
What Does a Business Analyst Do?http://www.completeitprofessional.com/what-does-a-business-analyst-do/ http://www.completeitprofessional.com/what-does-a-business-analyst-do/#comments Mon, 19 Jan 2015 11:00:07 +0000 http://www.completeitprofessional.com/?p=3162 ]]> What Does a Business Analyst DoA business analyst plays an important part in a project team. Find out what a business analyst does in this article.

What Does A Business Analyst Do?

A business analyst is a role in the software project team. They are the main contact point between the business representatives and the IT teams.

Their main role is to speak to the business representatives, find out what their requirements are, document them, and communicate them to the IT teams who perform the development work.

This might sound straight forward, but it does take a bit of work. Let’s have a look into each of these areas in more detail.

 

What Are Business Representatives?

Business representatives on a software project team are those who work in the company and have something to do with the product or solution. They can be:

  • The person or people paying for, or funding, the project
  • The people who use the solution
  • The people who represent the users of the solution (as sometimes the actual users are not available)
  • The people who understand the business process

Depending on your project, these roles could all be covered by one person, or there could be ten or twenty or even more people involved as a business representative. They are also commonly called stakeholders, as they have a stake in the project and its success.

 

What Are The IT Teams?

Well, the IT teams are the people who do the actual development work for the project. As a software developer, this is where you would fit in. They also involve the testers, IT architects, and any other role that relates to the software that is being built.

Depending on how your organisation is structured, this could be a single small team, or it could be multiple teams all working in different areas of the project.

 

Their Main Role is Gathering Requirements

As mentioned earlier, what a business analyst does is gather the requirements for the project. This is done by speaking to the business representatives that I mentioned earlier.

Why do we need a business analyst to do this? It comes down to two things – communication and experience.

Business analysts are often more comfortable and better able to speak to the business representatives in a way that they understand. They can refrain from going into too much technical detail, and can ask the right questions.

On the other side, they are also able to ask questions of the IT teams with an understanding of how the IT systems work. This is important as many business representatives don’t know how the IT side works, and therefore don’t know what questions to ask and how to interpret the answers.

The other reason business analysts are needed is to do with their experience. They have experience in working on these projects, asking the right questions, preparing the documentation that is needed, and many other aspects of the project.

 

A Business Analyst Also Diagrams the Processes

“What does a business analyst do?” They also diagram the business processes.

As part of their role, they need to understand the process of how something works in an organisation. This is so they can ask the right questions as part of their role, and also so they can better explain it to others.

Skills in Microsoft Visio are very helpful here, as this is a common way to create diagrams for using in documents and sharing within the organisation. The business analyst is responsible for understanding the process and putting it into a diagram in a simple and easy to understand way.

 

Clarify Details With Both IT and Business

The process of gathering requirements from the business users and providing them to IT isn’t the end of their role. What the business analyst does quite often is provide clarification for both teams during the project.

Often, because the software being developed needs to have exact specifications, the IT teams often need clarification on what to do in certain situations, like edge cases and different scenarios. The business analyst needs to work this out by looking at the documentation and speaking to the business representatives, often translating the “IT-speak” into business language.

It also goes the other way. The business representatives will also need to know how a situation could work or how something is planned on working, and the business analyst needs to ask the IT team, and provide a response back to the people who asked for it.

This clarification and translation process is often a big part of what a business analyst does.

 

Summary

So, to summarise what a business analyst does:

  • Gathers requirements
  • Diagrams processes
  • Prepares documents
  • Communicates and clarifies between IT and business teams

I hope this has clarified the role for you and help you to understand what does a business analyst do. Do you have any questions? Share them in the thoughts below!

Career Action Tip: Identify the business analysts on your project based on their roles here.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of stockimages / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/what-does-a-business-analyst-do/feed/ 0
How To Understand Normalization in DBMS With Exampleshttp://www.completeitprofessional.com/normalization-in-dbms/ http://www.completeitprofessional.com/normalization-in-dbms/#comments Thu, 15 Jan 2015 11:30:26 +0000 http://www.completeitprofessional.com/?p=3134 ]]> How To Understand Normalization in DBMS With ExamplesNormalization is a concept that can be hard to understand, but all database developers and administrators understand the importance of it. Learn about normalization in DBMS and why it’s used.

What Is Normalization in DBMS?

Normalization is a process used for data modelling, or database creation, where you organise your data so it can be added and updated efficiently, in order for the database to perform at its best. It’s something that database developers do as part of their role.

It can be done on any relational database, where data is stored in tables which are linked to each other. This means that normalization in DBMS (database management systems) can be done in Oracle, Microsoft SQL Server, MySQL, PostgreSQL and any other type.

To perform the normalization process, you start with a rough idea of the data you want to store, and apply certain rules to it in order to get it to a more efficient form.

 

Why Normalize a Database?

So why would anyone want to normalize their database? There are a few reasons we would want to go through this process:

  • Make the database more efficient
  • Prevent the same data from being stored in more than one place
  • Prevent updates being made to some data but not others
  • Ensure the data is accurate
  • Reduce the storage space that a database takes up
  • Ensure the queries on a database run as fast as possible

Normalization in DBMS is done to achieve these points. Without normalization on a database, the data can be slow, incorrect, and messy.

 

What Are The Normal Forms?

The process of normalization involves apply rules to a set of data. Each of these rules transform the data to a certain structure, called a normal form.

There are three main normal forms that you should consider. Actually, there are five in total, but the first three are the most common.

Whenever the first rule is applied, the data is in “first normal form“. Then, the second rule is applied and the data is in “second normal form“. The third rule is then applied and the data is in “third normal form“.

Fourth and fifth normal form are then achieved from their specific rules.

Alright, so there are three main normal forms that we’re going to look at. I’ve written a post on designing a database, but let’s see what is involved in getting to each of the normal forms in more detail.

 

What Is First Normal Form?

First normal form is the way that your data is represented after it has the first rule of normalization applied to it. Normalization in DBMS starts with the first rule being applied – you need to apply the first rule before applying any other rules.

Let’s start with a sample database. In this case, we’re going to use a student and teacher database at a school.

Student (first name, last name, date of birth, address)
Subject (subject name, subject category, student name)
Teacher (first name, last name, date of birth, address, subject taught)
University (university name, university address)

These are the tables, with the fields in each table listed within the brackets. They may look like this within a database:

Student

First NameLast NameDate of BirthAddress
 JohnSmithMarch 1, 1990 3 Main Street, North Boston 56125
 BradJonesAugust 14, 199116 Long Road, South Boston 56128

 

Subject

Subject NameSubject CategoryStudent Name
 Maths 1 Maths John Smith
 English 3 Languages Brad Jones

 

Teacher

First NameLast NameDate of BirthAddressSubject Taught
 JudyPepperJanuary 30, 197221 Arrow Street, South Boston 56128 Maths 2
 MarkTran September 2, 1981 14 Milk Lane, South Boston 56128 Maths 1

 

University

University NameUniversity Address
Excellent 10 Main Road, Boston, 56120
Medium 50 Main Road, Boston, 56120

 

To apply first normal form to our database, we ask ourselves some questions of each table:

  1. Does the combination of all columns make a unique row every single time?
  2. What field can be used to uniquely identify the row?

So, we apply these questions to each table.

 

Student Table:

Does the combination of all columns make a unique row every single time? No, there could be a record where the same student name and date of birth is at the same address (no matter how rare it is, it is still possible).

What field can be used to uniquely identify the row? None of these fields individually or any combination of them.

If there is no unique field, we need to create a new field. This is called a “primary key”, and is a database term for a field that is unique to a single row.

When we create a new primary key, we can call it whatever we like, but it should be obvious and consistently named between tables. I prefer using the ID suffix, so I would call it “student ID

This is our new student table:

Student (student ID, first name, last name, date of birth, address)

 

Subject Table:

Does the combination of all columns make a unique row every single time? No, not for this table. The same subject name and category could have two students with the same name.

What field can be used to uniquely identify the row? None, at this point. Maybe the subject name, but what if the name changes?

Let’s create a new field, similar to what we did earlier – “subject ID

The table now looks like this:

Subject (subject ID, subject name, subject category, student name)

 

Teacher Table:

Does the combination of all columns make a unique row every single time? No. Two teachers with the same name, date of birth, and address, could teach the same subject. It’s very unlikely but it could happen! The process of normalization in DBMS is not to assess how likely things are, it’s to determine if it’s possible.

What field can be used to uniquely identify the row? No fields.

Let’s create a new field and call it “teacher ID“.

The table now looks like this:

Teacher (teacher ID, first name, last name, date of birth, address, subject taught)

 

University Table:

Does the combination of all columns make a unique row every single time? Yes. Even if there are two universities with the same name, they won’t be at the same address

What field can be used to uniquely identify the row? A combination of university name and university address.

This table is different. Do we need to add a new primary key field, even though we have a combination of columns to identify it? We don’t need one, but it comes down to personal opinion. We also don’t want to have a primary key on a column that may change, so I like to create new fields anyway.

Let’s create a new field and call it “university ID

University (university ID, university name, university address)

So, now after applying the first rule for normalization in DBMS, our database looks like this:

Student (student ID, first name, last name, date of birth, address)
Subject (subject ID, subject name, subject category, student name)
Teacher (teacher ID, first name, last name, date of birth, address, subject taught)
University (university ID, university name, university address)

This data is now in first normal form.

 

What Is Second Normal Form?

The rule of second normal form on a database can be described as:

Fulfil the requirements of first normal form
Each non-key attribute must be functionally dependent on the primary key

What does this even mean?

It means that the first normal form rules have been applied. It also means that each field that is not the primary key is determined by that primary key, so it is specific to that record. This is what “functional dependency” means.

Let’s take a look at each of our tables.

 

Student Table:

Student (student ID, first name, last name, date of birth, address)

Are all of these values dependent on and specific to the primary key? Yes, they are. They are all specific to that student.

 

Subject Table:

Subject (subject ID, subject name, subject category, student name)

Are all of these values dependent on and specific to the primary key? Subject Category is not, as it could change or be duplicated. This means there is an “update anomaly”.

What is an update anomaly? It means there could be problems in the data if this record is changed. What happens if a category name changes? It needs to be changed for all records. But, what if a record is missed? It needs to be updated in more than one location. This is where the problem is.

So, how do we fix it? We move the “category” definition to a new table, and make it a single record.

The tables now look like this:

Subject (subject ID, subject name, student name)
Category (category ID, category name)

That’s all well and good, but how do we link them together?

We use a concept called a foreign key. This is basically a type of field in one table that refers to a primary key in another table, to show that the records are linked. It only goes in one table of the relationship here. In this case, we add it to the subject table, as that table needs to know about the category.

Subject (subject ID, category ID, subject name, student name)
Category (category ID, category name)

We need to do the same thing for the student name, because we already have a separate table for students. How do we link student and subject tables?

In this case, a student can have many subjects, and a subject can have many students. This is called a “many to many” relationship, and should not exist in a well-designed database. This is because we can’t put a foreign key on both sides of the relationship.

To fix this, we need to create a table in the middle, which joins them both together.

Student (student ID, first name, last name, date of birth, address)
Subject (subject ID, category ID, subject name)
Student_Subject (student ID, subject ID)

 

Teacher Table:

Teacher (teacher ID, first name, last name, date of birth, address, subject taught)

Are all of these values dependent on and specific to the primary key? All of them are, except for subject taught. This refers to the name in the subject table, but is not the primary key. This is a similar issue to the other tables we have just looked at. We should replace this with a foreign key value.

Teacher (teacher ID, first name, last name, date of birth, address)
Subject (subject ID, category ID, teacher ID, subject name)

 

University Table:

University (university ID, university name, university address)

Are all of these values dependent on and specific to the primary key? Yes, they are.

But, as we need to link the tables together, we need to know how this table fits in with the rest. How does the university table fit in with the others?

Subjects are taught at a university, and a university has many subjects.

Subject (subject ID, category ID, teacher ID, university ID, subject name)
University (university ID, university name, university address)

So, after normalization in DBMS for our example, it looks like this:

Subject (subject ID, category ID, teacher ID, university ID, subject name)
University (university ID, university name, university address)
Teacher (teacher ID, first name, last name, date of birth, address)
Student (student ID, first name, last name, date of birth, address)
Student_Subject (student ID, subject ID)
Category (category ID, category name)

Now, let’s take a look at third normal form.

 

What Is Third Normal Form?

Third normal form is the final stage of the most common normalization process. The rule for this is:

Fulfils the requirements of second normal form
Has no transitive functional dependency

What does this even mean? What is a transitive functional dependency?

It means that every attribute that is not the primary key must depend on the primary key and the primary key only.

For example:

  • Column A determines column B
  • Column B determines column C
  • Therefore, column A determines C

This means that column A determines column B which determines column C. This is a transitive functional dependency, and it should be removed. Column C should be in a separate table.

We need to check if this is the case for any of our tables.

Subject (subject ID, category ID, teacher ID, university ID, subject name)
University (university ID, university name, university address)
Teacher (teacher ID, first name, last name, date of birth, address)
Student (student ID, first name, last name, date of birth, address)
Student_Subject (student ID, subject ID)
Category (category ID, category name)

All of these tables look OK. The names in the tables don’t determine the address, and neither does the date of birth. Subject name and category name doesn’t determine anything else.

What if we split the address fields?

If we decided to split the “address” fields up into separate fields (number street name, suburb, city, state, code, country), then it would be a different situation.

The code (which is a ZIP code or post code), is used to determine the suburb, city and state. That is an identifier. It falls into the A > B > C pattern we looked at earlier. So, it could be split into a separate table:

Code (code, suburb, city, state)

So, that’s how third normal form could look if we had this example.

 

If you’re interested in more information about this, have a look at my Relational Database Design course, which goes into more detail on relational databases, including how to create your own efficient database that follows a good database design, and how to apply normal forms to it, and many other steps.

I hope this explanation has helped you understand what the normal forms are and what normalization in DBMS is. Do you have any questions on this process? Share them in the section below.

Career Action Tip: Understand the difference between the three normal forms.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/normalization-in-dbms/feed/ 0
Top 100 Blogs for Software Developers in 2015http://www.completeitprofessional.com/top-100-blogs-for-software-developers/ http://www.completeitprofessional.com/top-100-blogs-for-software-developers/#comments Tue, 13 Jan 2015 11:30:53 +0000 http://www.completeitprofessional.com/?p=3157 ]]> Top 100 Blogs for Software Developers in 2015It’s the start of a brand new year, so I’ve decided to compile a list of the top 100 blogs that I think software developers can get some benefit from in 2015.

What’s In This List?

I’ve created this list of 100 of the best blogs for software developers, as I’m always reading other blogs in the industry and thought that the good ones should be shared. As a blog/website owner myself, I thought that my readers could benefit from knowing about some of the other blogs out there. They contain topics on either programming, career advice for software developers, or general career advice.

This is not an ordered list, so #1 is not necessarily better than #10.

Also, the criteria I’ve used for these blogs are:

  • Quality of posts (the content is good quality)
  • Recency of posts (they are still posting at the moment)

So, let’s jump right in to the list!

 

Top 100 Blogs for Software Developers for 2015

 

NameSiteTwitter
Inside Tech (Monster)http://insidetech.monster.com/benefits@monster
Spiceworkshttp://community.spiceworks.com/@spiceworks
Dicehttp://news.dice.com@dicetechjobs
Atlassian Blog (JIRA)http://blogs.atlassian.com/@atlassian
Udacityhttp://blog.udacity.com/@udacity
CIOhttp://www.cio.com/topic/3123/Careers@cioonline
IT Worldhttp://www.itworld.com@itworld
Lifehacker AU – IT Careerhttp://www.lifehacker.com.au/it-pro/it-career/@lifehackerau
Scott Hanselmanhttp://www.hanselman.com/@shanselman
Code Guruhttp://www.codeguru.com/@codeguru
Careerealismhttp://www.careerealism.com/@careerealism
Coding Horrorhttp://blog.codinghorror.com/@codinghorror
Undercover Recruiterhttp://theundercoverrecruiter.com/@undercoverrec
Tom’s IT Prohttp://www.tomsitpro.com@tomsitpro
CITE Worldhttp://www.citeworld.com/@citeworld
Software Testing Helphttp://www.softwaretestinghelp.com@vijayshinde
DevXhttp://www.devx.com/@devx_com
The Brazen Careeristhttp://blog.brazencareerist.com/@brazencareerist
IT Job Boardhttp://blog.theitjobboard.co.uk/@theitjobboard
Tech Careershttp://www.techcareers.com/articles/c-information-technology-articles.html@beyond_com
Work Awesomehttp://workawesome.com/@workawesome
The Work Buzzhttp://www.theworkbuzz.com/career-tips/@careerbuilder
IT World Canadahttp://www.itworldcanada.com/blogs/@itworldca
Simple Programmerhttp://simpleprogrammer.com/@jsonmez
CIO Insighthttp://www.cioinsight.com/c/s/Careers/@cioinsight
Bridging the Gaphttp://www.bridging-the-gap.com/None
Less Than Dothttp://lessthandot.com/@lessthandot/
Blog Notionshttp://career.blognotions.com/@blognotions
Career Rocketeerhttp://careerrocketeer.com@careerrocketeer
IT Career Finderhttp://www.itcareerfinder.com/brain-food/blog.html@itcareerfinder
Qareahttp://www.blog.qarea.com/@qarea
Web Maister Prohttp://www.webmaisterpro.com@webmaisterpro
Software Testing Classhttp://www.softwaretestingclass.com@mytestingclass
AVDI Devbloghttp://devblog.avdi.org/@avdi
Tim Anderson’s ITWritinghttp://www.itwriting.com/blog/@timanderson
Lindsey Pollakhttp://www.lindseypollak.com/blog/@lindseypollak
Software Specialistshttp://www.softwarespecialists.com/blog/@swspecialists
Randall Deggeshttp://rdegges.com@rdegges
Online Career Tipshttp://onlinecareertips.com@careertipsnow
Project Managerhttp://projectmanager.com.au@projectmgr_au
Employment Metrixhttp://www.employmentmetrix.com/@beyond_com
Edge Linkhttp://www.edgelink.com/blog/@edgelink
IT Career Toolkithttp://www.itcareertoolkit.com/@matthewmoran
Technoraclehttp://technoracle.blogspot.com.au/@duanenickull
Software Development Todayhttp://softwaredevelopmenttoday.blogspot.com.au/@duarte_vasco
Avid Careeristhttp://www.avidcareerist.com/@avidcareerist
The Branding Musehttp://www.thebrandingmuse.com/@emmeliedelacruz
Brooklyn Resume Studiohttp://www.bklynresumestudio.com/brooklyn-resume-studio-career-and-branding-blog/@danaleavy
Bulls Eye Recruitinghttp://bullseyerecruiting.net/@willrecruits
CareerBoost Bloghttp://www.spherion.com/careerboost-blog/@spherion
Career Musingshttp://www.daisywright.com/@careertips2go
Career Pivothttp://careerpivot.com/blog/@careerpivot
Careers Done Writehttp://careersdonewrite.com/blog/@debrawheatman
Career Sherpahttp://careersherpa.net/@careersherpa
Career Upshifthttp://www.careerupshift.com/None
The Chief Happiness Officerhttp://positivesharing.com/@alexkjerulf
Come Recommendedhttp://comerecommended.com/blog/@comerecommended
Corn On The Jobhttp://www.cornonthejob.com/@cornonthejob
The Daily Musehttp://www.thedailymuse.com/@dailymuse
Endless Job Offershttp://www.endlessjoboffers.com/@jmmuscarello
Glassdoor Bloghttp://www.glassdoor.com/blog/@glassdoor
Harrison Barneshttp://www.aharrisonbarnes.com/@aharrisonbarnes
Idealist Careershttp://idealistcareers.org/@idealistcareers
InterviewIQhttp://interviewiq.com.au/@interviewiq
Interview Coachhttp://www.interview-coach.co.uk/blog/@margaretbuj
Introvert Whispererhttp://introvertwhisperer.com/@introvertleader
JibberJobber Bloghttp://www.jibberjobber.com/blog@jasonalba
Keppie Careershttp://www.keppiecareers.com/blog/@keppie_careers
Knock ‘Em Dead Bloghttps://knockemdead.com/blog/@knockemdead
MyCareerTopiahttp://www.mycareertopia.com/blog/@mycareertopia
Monster Bloghttp://www.monster.com/blog/@monster
The Office Blendhttp://marlagottschalk.wordpress.com/@mrgottschalk
Pathfinder Careershttp://pathfindercareers.com/blog/@dawnrasmussen
Penelope Trunkhttp://blog.penelopetrunk.com/@penelopetrunk
Personal Branding Bloghttp://www.personalbrandingblog.com@danschawbel
The Personal Branding Bloghttp://www.thepersonalbrandingblog.com/@reachbranding
Position Ignitionhttp://www.positionignition.com/blog/@posignition
Resume to Interviewshttp://resumetointerviews.com/blog/@res2interviews
Resume to Referral Bloghttp://www.resumetoreferral.com/blog@teenarose
SparkHire Job Seekerhttp://blog.sparkhire.com/@sparkhire
TalentCulturehttp://www.talentculture.com/@talentculture
TheLadders Career Bloghttp://info.theladders.com/your-job-search/topic/ask-amanda@theladders
Top Margin Bloghttp://www.topmargin.com/blog@gaylehoward
The Voice of Jobseekershttp://thevoiceofjobseekers.com/@markadyson
Water Cooler Wisdomhttp://blog.alexandralevit.com/@alevit
Work Coach Caféhttp://www.workcoachcafe.com/@workcoachcafe
Career Blisshttp://www.careerbliss.com/tips-trends/@careerbliss
A Better Interviewhttp://www.abetterinterview.com/@betterinterview
Experiencehttp://www.experience.com/entry-level-jobs/@symplicitycorp
First Jobhttps://www.firstjob.com/blog/@firstjobtweets
Profession Directionhttp://www.professiondirection.net/blog/@kristinsjohnson
The Career Artisanhttp://maryelizabethbradford.com/@careerartisan
Coding for Interviewshttp://codingforinterviews.com/blog/@interviewcoding
Paul Graham’s Essayshttp://www.paulgraham.com/articles.html@paulg
Ajaxianhttp://ajaxian.com/@ajaxian
Rands In Responsehttp://randsinrepose.com/@rands
Martin Fowlerhttp://martinfowler.com/@martinfowler
Tower Bloghttp://www.git-tower.com/blog/@gittower
A List Aparthttp://alistapart.com/blog@alistapart
Daily JShttp://dailyjs.com/@dailyjs

 

 

Do You Run One Of These Sites?

Do you own or run one of the sites in this list? Add this badge to your website to notify your readers that you are featured on this list!

citp_top_100

Or, you can copy and paste the following code directly on to your website:

Embed Code (Thumbnail):

<a href="http://www.completeitprofessional.com/top-100-blogs-for-software-developers"><img title="Complete IT Professional - Top 100 Blogs for Software Developers in 2015" src="http://www.completeitprofessional.com/wp-content/uploads/2015/01/citp_top_100-150x150.jpg" alt="Complete IT Professional - Top 100 Blogs for Software Developers in 2015" width="150" height="150" /></a>

Embed Code (Full Size):

 <a href="http://www.completeitprofessional.com/top-100-blogs-for-software-developers"><img title="Complete IT Professional - Top 100 Blogs for Software Developers in 2015" src="http://www.completeitprofessional.com/wp-content/uploads/2015/01/citp_top_1001.jpg" alt="Complete IT Professional - Top 100 Blogs for Software Developers in 2015" width="150" height="150" /></a>

Hopefully this list gives you a good indication of some blogs to follow for 2015. Have I missed out on any good blogs? Share them in the comments section below!

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

]]>
http://www.completeitprofessional.com/top-100-blogs-for-software-developers/feed/ 0
5 Steps For How to Become a Software Testerhttp://www.completeitprofessional.com/how-to-become-a-software-tester/ http://www.completeitprofessional.com/how-to-become-a-software-tester/#comments Mon, 12 Jan 2015 11:30:08 +0000 http://www.completeitprofessional.com/?p=3127 ]]> 5 Steps For How to Become a Software TesterA career as a software tester can be rewarding and is a big part of a software development project. Learn how to become a software tester in this article.

What Is A Software Tester?

First of all, let’s take a look at what a software tester actually is.

A software tester is someone on a project team that performs a series of tests on a piece of software with the aim of identifying and removing all defects. It is usually done after the software is developed and before it is released.

The testing includes a wide range of tests, as I’ve detailed in this post on testing types, such as system testing and performance testing. A software tester performs these tests either manually, or using a set of tools to do it automatically.

Now that we’ve covered what a software tester is, let’s look at the steps for how to become a software tester.

 

1 – Learn How To Program

Programming is the first step in becoming a software tester. They perform tests on software code, and they are more effective if they know what the code is and what it means.

Having commercial experience as a programmer and knowing programming languages and fundamentals are two different things. You don’t need to have any programming experience at a company to become a software tester, but you do need to know a few things about programming:

  • Programming concepts and fundamentals (algorithms, object oriented programming, basics of architecture, etc.)
  • How to read code in various languages
  • A high level understanding of several programming languages

The most important one here is the fundamentals of programming. Programming languages come and go, but if you understand the fundamentals, they can be applied to any language you’re able to learn.

 

2 – Learn About Software Testing

The next step on how to become a software tester is to learn about software testing in general. This might be something that you learn as part of a degree, as many software testers have a degree in Computer Science or a related field.

Learning about software testing involves:

  • The different types of testing
  • What test plans are and what they are used for
  • How to run tests and determine results
  • Creating test reports

If you’re a software developer, then you might have learnt about this at a high level, but as a software tester, you need to know it more intimately.

As mentioned, this is something that you usually learn as part of your degree. If not, there are many books and courses out there on software testing.

 

3 – Learn Automated Testing

The next step to how to become a software tester is to learn the concepts of automated testing.

Automated testing is where you take the manual tests that you have been running originally, and put them into a tool to run them automatically. This is effective where the same tests are run quite often, or if a lot of similar tests need to be run.

One of the most popular tools for running this is HP Quick Test Professional, otherwise known as QTP. As of late 2012, this has been renamed to Unified Functional Testing (and has been combined with HP Service Test, which tests APIs). So, if you see the terms QTP or ST around, then the latest version of this tool is called UFT.

If you don’t have access to this yourself, it may also be something you learn as part of your degree. If not, then it’s something you can learn on the job. HP does offer a 60-day trial on their website, but I haven’t used it so I’m not sure how well it works.

If you’re not able to get some hands-on experience with HP UFT, then that’s still OK. The main point is to understand the concepts of automated testing, and you may be able to learn the actual tools on the job.

Another popular automation testing tool is Selenium, which you may be able to get a copy of and run your own tests on your own projects if you need.

 

4 – Learn Performance Testing

Performance testing is another big area of becoming a software tester. It’s also an area where you should learn the concepts of it, but not necessarily the tools.

One of the most popular testing tools is another tool by HP, called LoadRunner. If you’re not able to use it while studying or get any hands-on experience, you can get a trial of it from the HP website. At the time of writing, they offer a trial version that you can use for a certain number of virtual users.

 

5 – Apply for Software Tester Jobs

With the knowledge you have now, you should be able to apply for a job as a software tester. You have:

  • Basic programming experience
  • An understanding of programming concepts and fundamentals
  • Knowledge of how to perform software tests
  • Knowledge of testing concepts such as automated testing and performance testing

You should now be able to apply for jobs as a software tester. As part of this, you’ll need to make sure your resume is up to date and that you’re prepared for any interviews that you’ll get.

Once you get the job, congratulations! You’re now employed as a software tester!

 

How To Become a Software Tester

So, in summary, to become a software tester, you need to:

  1. Learn how to program
  2. Learn about software testing
  3. Learn automated testing
  4. Learn performance testing
  5. Apply for software tester jobs

 

Well, I hope this article has explained the process to you for how to become a software tester. Testing is an important role in the industry. Do you have any questions about this? Share them in the comments section below.

Career Action Tip: Work out which steps of these you have done, and determine what the next action is for you to become a software tester from these steps (such as learning about performance testing).

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/how-to-become-a-software-tester/feed/ 0
Oracle TO_CHAR Function Explained with Exampleshttp://www.completeitprofessional.com/oracle-to_char/ http://www.completeitprofessional.com/oracle-to_char/#comments Thu, 08 Jan 2015 11:30:09 +0000 http://www.completeitprofessional.com/?p=3105 ]]> Oracle FunctionThe Oracle TO_CHAR function is one of the most common and useful string manipulation functions in Oracle. In this article and video, I’ll explain how to use the TO_CHAR function.

Purpose of the Oracle TO_CHAR Function

The purpose of the Oracle TO_CHAR function is to convert either a number or a date value to a string value. It works similar to the TO_DATE function and TO_NUMBER function. This function takes either a number or a date as an input, and converts it to a string value to be displayed or processed accordingly. The converted data is a VARCHAR2 data type.

The input value can be a numeric type of NUMBER, BINARY_FLOAT, or BINARY_DOUBLE, or it can be a date type of DATE, TIMESTAMP, TIMESTAMP WITH TIME ZONE, or TIMESTAMP WITH LOCAL TIME ZONE.

 

Syntax

The syntax of the Oracle TO_CHAR function is:

TO_CHAR( input_value, [format_mask], [nls_parameter] )

 

Parameters

The parameters of the TO_CHAR function are:

  • input_value (mandatory): This is the value to convert into a String type. This is the main input to the function, and this value can either be a DATE type or any of the Number types.
  • format_mask (optional): This is the format that the input_value should be displayed as. If this is omitted, the function will use a default format, as mentioned below.
  • nls_parameter (optional): This value is used to determine how the output value is displayed.

 

If the format_mask parameter is omitted, then:

  • DATE values are converted to values in the default date format.
  • TIMESTAMP and TIMESTAMP WITH LOCAL TIME ZONE values are converted to values in the default timestamp format.
  • TIMESTAMP WITH TIME ZONE values are converted to values in the default timestamp with time zone format.
  • Numeric values are converted to a string value that is long enough to hold its significant digits.

 

Format Mask

The format mask is helpful as it allows you to specify what format the input_value should be converted to.

To make it clear, we need to specify some values for the format mask. The possible values are:

Year

ParameterExplanation
YEARYear, spelled out in full words
YYYY4-digit year
YYYLast 3 digits of year
YYLast 2 digits of year
YLast digit of year
IYYLast 3 digits of ISO year
IYLast 2 digits of ISO year
ILast digit of ISO year
IYYY4-digit year, which is based on the ISO standard
RRRRThis format accepts a 2-digit year, and returns a 4-digit year. If the provided value is between 0 and 49, it will return a year greater than or equal to 2000. If the provided value is between 50 and 99, it will return a year less than 2000

 

Month

ParameterExplanation
QQuarter of year, from 1 to 4. JAN to MAR = 1
MMMonth, from 01 to 12. JAN = 01
MONAbbreviated name of month.
MONTHName of month, padded with blanks to length of 9 characters.
RMRoman numeral month, from I to XII. JAN = I.

 

Week

ParameterExplanation
WWWeek of year, from 1 to 53. Week 1 starts on the first day of the year, and continues to the seventh day of the year.
WWeek of month, from 1 to 5. Week 1 starts on the first day of the month and ends on the seventh.
IWWeek of year, from 1 to 52 or 1 to 53, based on the ISO standard.

 

Day

ParameterExplanation
DDay of week, from 1 to 7.
DAYName of day.
DDDay of month, from 1 to 31.
DDDDay of year, from 1 to 366.
DYAbbreviated name of day.
JJulian day, which is the number of days since January 1, 4712 BC.

 

Time

ParameterExplanation
HHHour of day, from 1 to 12.
HH12Hour of day, from 1 to 12.
HH24Hour of day, from 0 to 23.
MIMinute, from 0 to 59
SSSecond, from 0 to 59
SSSSSSeconds past midnight, from 0 to 86399.
FFFractional seconds. This uses a value from 1 to 9 after FF, to indicate the number of digits in the fractional seconds (e.g. FF7)

 

Indicators

ParameterExplanation
AM, A.M., PM, or P.M.Meridian indicator
AD or A.DAD indicator
BC or B.C.BC indicator
TZDDaylight savings information
TZHTime zone hour.
TZMTime zone minute.
TZRTime zone region.

 

The format mask also means that punctuation and quoted text is reproduced in the result. So, if you add an underscore (_) or a dash (-), for example, it is shown in the output.

 

NLS_DATE_LANGUAGE Explanation

The NLS_DATE_LANGUAGE can be specified in this function to determine how the date is shown. As you may know, different regions show the same date in different ways:

  • China: yyyy-mm-dd
  • UK: dd/mm/yyyy
  • US: mm/dd/yyyy

To use the NLS_DATE_LANGUAGE as part of this function, you can use any language listed under Table A-1 on the Oracle Language page. Some examples are American, English, French, German, and Swedish.

 

Examples of the TO_CHAR Function

Here are some examples of the TO_CHAR function. I find that examples are the best way for me to learn about code, even with the explanation above.

 

Example 1

This example converts the number 12345.67 into the format specified in the second parameter.

SELECT TO_CHAR(12345.67, '99999.9') FROM DUAL;

Result:

12345.7

As you can see, the result only has one decimal place. This is because the output format only had one decimal place, and the .67 was rounded up to .7.

 

Example 2

This next example converts the number 12345 into a string with zeroes in it.

SELECT TO_CHAR(12345, '00000000') FROM DUAL;

Result:

00012345

This is the result because the format mask of 0 means that there are leading zeroes added (to the left of the number) when it is converted.

 

Example 3

This example converts the current date (SYSDATE) into a string, using a format of 4 digit year, then an underscore, then 2 digit month, underscore, then two digit day.

SELECT TO_CHAR(SYSDATE, 'YYYY_MM_DD') FROM DUAL;

Result:

2014_12_27

 

Example 4

This example converts the SYSDATE value again, but uses the format mask of “Month” which is the full month name.

SELECT TO_CHAR(SYSDATE, 'Month') FROM DUAL;

Result:

December

This is because the Month of SYSDATE is December, and that is what gets converted.

 

Similar Functions

Some functions which are similar to the TO_CHAR function are:

  • TO_DATE – converts a string value to a DATE type.
  • TO_NUMBER – converts a value to a NUMBER type
  • CAST – used for many types, including dates

 

Video

For an example of this function, watch the video here.

 

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of digitalart / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/oracle-to_char/feed/ 0
What Is A Full Stack Developer, And What Do They Need To Know?http://www.completeitprofessional.com/full-stack-developer/ http://www.completeitprofessional.com/full-stack-developer/#comments Mon, 05 Jan 2015 11:30:58 +0000 http://www.completeitprofessional.com/?p=3080 ]]> What Is A Full Stack Developer, And What Do They Need To KnowThe term “full stack developer” is use quite regularly in the industry, whether it’s referring to job advertisements or when developers are talking about their own skills. This term has changed quite a bit in the IT industry, so let’s take a look at what it is, what you need to know, and how to become a full stack developer.

What Is A Full Stack Developer?

Let’s start by looking at the concept of a stack. A stack, when referring to software development, is all of the different layers and technologies that are used in developing software. These layers include:

  • Client-side code
  • Web browser
  • Server-side code
  • Web server
  • Database
  • Operating system

A stack is a combination of each of these layers. For example, back when I started development there was a popular product called WAMP (or LAMP, which was the Linux version). WAMP stood for Windows, Apache MySQL and PHP. This covered several layers in the stack, and was popular for us students.

Of course, there are many other stacks that are available. If someone wanted to learn ASP.NET, it would be treated as a different stack, and so would Java and probably C#.

So, back to the original question, what is a full stack developer?

A full stack developer is someone who is experienced with all roles and technologies across a particular stack. This mainly includes front-end development and back-end development.

How is this different from a normal developer? How is it different from someone who can develop web sites in PHP and can understand SQL?

Before we get into that, and the kinds of technologies that a full stack developer can know, we should look at how this term came to be.

 

History of the Full Stack Developer

An article on TechCrunch mentions a brief history of web development, which can be summarised as:

  • 1980s-1990s: Client/server computing was used, with many developers having different roles in the process
  • 1990s-2000s: Internet technology meant that the client/server architecture evolved and became more mainstream. New technologies were created, and each of them needed a different specialist.
  • Mid 2000s: More technologies and widespread use of websites and applications meant creating new software was expensive. There were many specialists involved in creating something.
  • Late 2000s: Newer technologies became easier to use, and meant that a single person could develop a website themselves.

What this means, is that at some point the technologies became too complicated for a single person to be able to work with. But, at another point, the shift was made, and now it is possible for a person to be able to be not only competent, but experienced, in many technologies that make up a stack.

This is where the “full stack developer” term has evolved to.

While the article on TechCrunch does confuse the term “cross platform” with “full stack”, it does provide a good history of the technologies involved.

So, what are these technologies? What does a full stack developer need to know to be able to call themselves a full stack developer? Let’s find out.

 

What Does A Full Stack Developer Need To Know?

A developer needs to know many things to be considered a full stack developer. Let’s break it down by the layers in the stack as I mentioned earlier.

 

Operating System

The developer would need to know how to develop on the operating system being used. They don’t need to be a master of it, and many of the things they need to know would come under the “web server” category, but at the very least they should know how the operating system is setup and how to write code that can run on it.

However, given that many websites run on Linux (rather than, say, Windows), it’s probably not the most important thing to know.

The specific skills are:

  • Linux/UNIX

 

Database

There are many things that a full stack developer should know when it comes to the database layer:

  • Data Modelling: they should know how to create a data model for a database that is efficient, scalable and error-free.
  • Administration: they should be able to administer the database, which includes user access, monitoring, backups and maintenance.
  • Writing queries: this could go without saying, but full stack developers need to be able to write queries to read, write, update, and delete data in an efficient and effective way

The technologies that they may be experienced in are:

  • MySQL
  • PostgreSQL
  • Oracle
  • Microsoft SQL Server

 

Web Server

A full stack developer should know a few things at the web server layer:

  • Setting up: the basics of how to set up the web server and how it can be configured
  • Features and issues: they should also be aware of the different features of the web server, and any issues or problems with it

The related technologies are:

  • Apache
  • Nginx

 

Server-Side Code

This is the big one, and probably the area where a lot of developers have focused on. Server-side code skills can be broken down into:

  • Writing efficient and effective code: being able to write code in the language of choice that gets the job done, is efficient, and easy to maintain
  • Read and debug existing code: whether the developer has written it or not, they should be able to read code and able to find bugs and other issues in it
  • APIs and frameworks: the full stack developer should be able to use existing APIs and frameworks to develop their application

The technologies for this area are:

  • PHP
  • NodeJS
  • Ruby
  • Java
  • .NET

 

Web Browser

While this isn’t an area that a developer writes code in, it’s something that they should be knowledgeable in.

  • Cross-browser testing: they should be able to write applications that work correctly and display correctly in all major browsers (which can be tough if you’ve tried to do this before!)
  • Knowledge of browser behaviour: they should know how browsers display certain things and which types of code to avoid

These technologies are related to the most common browsers:

  • Chrome
  • Firefox
  • Internet Explorer
  • Safari

 

Client-Side Code

Full stack developers also need to know about client-side code, or front-end development. This is the other major area of development.

  • Features of each language: front-end languages have different features for accomplishing different things, and the developer should know and understand them all
  • Using best practices: due to the number of languages and technologies involved, a full stack developer shouldn’t get stuck on using one method for developing everything, and should be able to evolve as the technology changes
  • Write efficient and effective code: they should also be able to write code in these languages that is efficient and easy to maintain.

The related technologies are:

  • HTML
  • CSS
  • JavaScript (jQuery, AngularJS, etc)
  • AJAX
  • JSON
  • XML

 

Other areas

There are several other areas of software development that a full stack developer should be experienced in.

  • Design: the developer should know the basics of how to design a software application or website, and how to convert it into working code for a prototype or a working version.
  • User interface and user experience: skills in developing a user interface that follows standards, and considering the entire user experience for the product, is a skill these full stack developers may find useful.
  • Unit and system testing: testing is an important part of developing code, and they should be familiar with testing processes, best practices, and the tools involved. This includes both unit testing and system testing.
  • Mobile/responsive: the full stack developer should be able to develop for mobile devices and use responsive design, with the increase in mobile usage on websites and other applications.

This seems like quite a long list of technologies and skills for someone to learn to be classed as a full stack developer. Sure, it is a long list, which is why it’s not really for junior developers. It takes a fair bit of experience to know all of these, which is more than what they teach you in the classroom.

Why would someone become a full stack developer then?

 

Why Should I Become A Full Stack Developer?

We’ve taken a look at the big list of things a full stack developer should know. It seems pretty daunting. There must be an upside, right? Otherwise why would anyone even look at this role?

Yes, there are a few advantages to become a full stack developer:

  • Understand the full scope of what needs to be done. Your role will be involved in the different layers of developing the solution, so you will understand what needs to be done at each layer, which can help improve the overall quality of the solution.
  • Design and code the entire project yourself. It can be satisfying to design and code something all by yourself, from start to finish. This is something a full stack developer is capable of.
  • Communicate with many other teams, especially in an Agile environment. With the increase in Agile project teams, you’ll be able to communicate better with them, as you understand the work that is required. You can also work better with DevOps teams as there is more understanding and consideration there too.
  • Start your own web development business. As you know how to do the design work, development work, and all other related steps, you have more of the knowledge needed to start your own web development business. Someone who can only design, would need developers, and someone who can only write code would need other developers and designers to make this work.

 

Disadvantages of Being a Full Stack Developer

Alright, so we’ve had a look at some of the positives of this role. Now, it’s only fair that we take a look at some of the disadvantages of it.

  • Keep up with the latest technologies and trends. As a full stack developer, you need to be able to keep up with the latest technologies, whether this is developments in the technologies you know, or new technologies or frameworks that are being released.
  • A lot of experience needed. You’ll need to have quite a bit of experience to be capable in this role. It isn’t something you can come right out of college or university and start doing.
  • Open mind towards new technologies. This may not be such a disadvantage, but if you’re the kind of person that likes to stick to a certain way of doing things, then this kind of role might be tough.

 

How Much Can I Earn?

According to Indeed.com, the average salary of a full stack developer is $102,000

They seem to range between $90,000 and $110,000, depending on the technology used, such as Java or PHP. It would also vary between locations, because places such as NYC or SF would pay a lot more.

Given the amount of skills that are needed, and the experience level, it seems like a fair number.

 

How Do I Become a Full Stack Developer?

Are you interested in becoming a full stack developer? Did you get excited when reading about what all the skills are and the kind of work that you’ll be doing?

Fantastic. The world needs more full stack developers.

First of all, these kind of developers are most common in smaller companies and startups. This is because they don’t have the budget to higher a single person for each technology, so it’s up to the one person to learn all of the required skills. So, if you’re interested in becoming a full stack developer, look for jobs in smaller companies.

You would probably need to be proficient in one area of development first. And by proficient, I mean good enough to get a job just doing that. You could be a web developer, database developer, or front end developer and have experience in certain technologies. This would be enough to get you a job in that role at a small company.

They would hopefully have a need for you to expand your skills, and you would need to be willing to do this. With some time on the job doing your main role, and learning the other skills that you don’t know, a role as a full stack developer would come in time.

So, in summary, you need to start with a skill you already know (preferable development), and work on learning and improving all of the other related skills at a job at a small company or startup.

 

Well, I hope this article has cleared up any confusion you had about the role of a full stack developer. Are you interested in becoming one? What has your experience been with others in this role? Share your comments in the section below.

Career Action Tip: Assess your skill level on a scale of 1 to 10 on each of the focus areas above, and determine which one is able to get you a job as a developer, if you’re interested in this career path.

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/full-stack-developer/feed/ 0
How to Install and Set Up Oracle Database on Your PChttp://www.completeitprofessional.com/how-to-install-and-set-up-oracle-database/ http://www.completeitprofessional.com/how-to-install-and-set-up-oracle-database/#comments Fri, 02 Jan 2015 11:30:21 +0000 http://www.completeitprofessional.com/?p=3119 ]]> How To Download Oracle SQL DeveloperIn this post, I’ll explain how to download, install, and set up an Oracle Database on your own computer.

Requirements to Install and Set Up Oracle Database

To be able to run the Oracle database on your computer, you’ll need:

  • Internet access to download the required files (or the files downloaded to be used offline)
  • Windows or Linux operating system. At the moment, there is no way to install Oracle on a Mac, unless you use a virtual machine such as Parallels.

 

Step 1 – Download Oracle Client

The steps to download Oracle Database 11g Express Edition are:

  1. Visit the Oracle website at oracle.com.
  2. Go to the Downloads menu at the top.
  3. Select Oracle Database 11g Express Edition.
  4. Read and accept the license agreement
  5. Click on the link to the relevant version (Windows or Linux).
  6. Enter your Oracle account details (or sign up for one if you don’t have one already)
  7. Select the save location and press Save.

You can view the video here:

 

Step 2 – Install Oracle Client

To install the Oracle database client, follow these steps:

  • Extract the file that was downloaded
  • Run the “setup.exe” file
  • Click Next on the Welcome screen
  • Accept the terms and conditions
  • Select your installation directory
  • Enter a password to use for both the SYS and SYSTEM database accounts. You will need this for logging in to the database later.
  • Click Install after reading the summary.

You can view the video here:

 

Step 3 – Download Java JDK

The steps to download the Java JDK are:

  1. Visit the Oracle website at oracle.com.
  2. Hover over the top menu and click on Downloads
  3. Click on Java for Developers
  4. Click on the Java Platform JDK. The JDK download page is shown.
  5. Read and accept the license agreement.
  6. Scroll down to find the installation files for the JDK for various operating systemsand file types.
  7. Choose your preferred file type and download.
  8. Save the file in your preferred destination.

You should now be able to install the JDK on your computer.

PS: I’m aware that the J in JDK stands for Java, and it’s a bit strange calling it the Java JDK as that actually means “Java Java Development Kit”, but it’s a bit easier for some to recognise if it’s mentioned as Java JDK.

You can view the video here:

 

Step 4 – Install Java JDK

The steps for how to install Java JDK are:

  1. Run the file downloaded in the previous step (e.g. “jdk-7u25-windows-x64.exe”).
  2. Click Run if a security warning appears.
  3. Click Next on the Welcome screen
  4. Click Next on the Features screen (the default features are OK). The installation directory can remain at the default value.
  5. Wait for the JDK to be installed (approx 30-40 seconds).
  6. Accept the default installation for the Java Runtime Environment (JRE) and click Next.
  7. Wait for the JRE to be installed.
  8. Click Close.

Java JDK should now be installed on your computer.

You can view the video here:

 

Step 5 – Download Oracle SQL Developer

To download Oracle SQL Developer, which lets you run queries on the database, follow these steps:

  1. Go to oracle.com
  2. Select the Downloads tab, then under Developer Tools, click on SQL Developer.
  3. Acceptthe license agreement.
  4. Select a download linkfor your operating system.
  5. Save the fileto a location on your computer
  6. Browseto the saved location
  7. Extractthe ZIP file using a compression program (WinZIP, WinRAR, 7ZIP, etc)
  8. Closethe ZIP file.
  9. Openthe extracted folder.

The Oracle SQL Developer application can be run by opening sqldeveloper.exe.

You can view the video here:

 

Step 6 – Set Up Oracle SQL Developer

To set up Oracle SQL Developer for use, follow these steps:

  • Open the “sqldeveloper.exe” file
  • Click on Browse for the java.exe pathname
  • Browse to the location that the Java JDK was installed to (which may be C:\Program Files\Java\jdk1.7.0_25\bin)
  • Open Java.exe
  • Click OK
  • Click Yes if a warning for a certified version appears. I haven’t noticed any issues with this.
  • Click Yes if another message for version incompatibility appears.
  • Select the file types to associate with SQL Developer. I’ve selected all of them.

You can view the video here:

 

Step 7 – Create Connection in Oracle SQL Developer

To create a connection to your database from Oracle SQL Developer so you can run queries, follow these steps:

  • Click on the green + icon in the top left
  • Enter whatever your like as the connection name. I’ve used “Local”. This is the value that is displaed for this connection iwthin the application.
  • For username, use SYSTEM
  • For password, enter the same password as you did during the installation
  • Leave all of the other fields the same
  • Click on Test. The status should show “Status: Success”, which means the details are correct
  • Click Connect.

The connection will be created and an connected to.

You can view the video here:

 

Well I hope this has given you some guidance on how to download, install, and set up an Oracle database on your computer. If you have any questions, let me know!

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!
]]>
http://www.completeitprofessional.com/how-to-install-and-set-up-oracle-database/feed/ 0
4 Reasons To Subscribe To The CITP Newsletterhttp://www.completeitprofessional.com/4-reasons-subscribe-citp-newsletter/ http://www.completeitprofessional.com/4-reasons-subscribe-citp-newsletter/#comments Wed, 31 Dec 2014 11:30:06 +0000 http://www.completeitprofessional.com/?p=3057 ]]> 4 Reasons To Subscribe To The CITP NewsletterIn case you haven’t noticed, I provide an email newsletter as part of this website. If you haven’t signed up yet, let me show you a few reasons why you might want to.

Bonuses For Subscribing

The most common reason that people sign up to the newsletter are the bonuses. As part of signing up, I give you access to a few bonuses that I don’t show in other areas of the site. Some of them are:

  • What I Learnt In My First 7 Years In The IT Industry – a PDF guide that lists several things that I learnt after working in the IT industry in my first seven years. This is something that I wish I was given when I started my IT career.
  • Top 9 Resources For New IT Software Professionals – a list of 9 resources that can really benefit you as a software professional (programmer, tester, and other similar roles).

I’m continuously working on adding more bonuses to this section, so it’s worth signing up for. Use the form on the side of this page, or at the bottom, to subscribe.

 

Content That Is Not On The Website

If you enjoy the posts that I provide on my website, you’ll enjoy the emails that I send. I send one email every week that has content not from the website. This could be:

  • Career advice I haven’t shared anywhere else
  • Stories from my own career
  • Additional information from articles that I have published

Once again, you can only get this if you’ve subscribed.

 

Early Access to Products

I have created and sold a few products on this website. As part of my product development process, I provide access to these products to my subscribers before I release them to the public. I do this so I can get some feedback from the CITP community, and as a way to test the products. Some of the products I have done this for are:

So, if you’d like to get early access to the products I provide in the future, subscribe to my newsletter.

 

Notifications of New Posts Each Week

I only send two emails per week most of the time. The second email that is sent each week is a summary of the posts I have published for the week. So, if you like the posts that I write and want to be notified when they are released, becoming a subscriber is a good way to do this.

Sometimes there is only one post, other times I’ve written two or three posts. In any case, you’ll be notified of when they release in an email that I send you each week.

So, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of Stuart Miles / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/4-reasons-subscribe-citp-newsletter/feed/ 0
Oracle TO_NUMBER Function Explained with Exampleshttp://www.completeitprofessional.com/oracle-to_number/ http://www.completeitprofessional.com/oracle-to_number/#comments Tue, 30 Dec 2014 11:30:18 +0000 http://www.completeitprofessional.com/?p=3143 ]]> Oracle TO_NUMBER Function Explained with ExamplesThe Oracle TO_NUMBER function is one of the most common number manipulation functions in Oracle. In this article and video, I’ll explain how to use the TO_NUMBER function.

Purpose of the Oracle TO_NUMBER Function

The purpose of the Oracle TO_NUMBER function is to convert a text value to a number value. It works similar to the TO_DATE and TO_CHAR functions, but converts the values to a number.

The function takes many different data types:

  • BINARY_FLOAT
  • BINARY_DOUBLE
  • CHAR
  • VARCHAR2
  • NCHAR
  • NVARCHAR2

The TO_NUMBER returns a value in the NUMBER data type.

Also, the number will be rounded to the specified number of digits, which may cause undesired effects.

 

Syntax

The syntax of the Oracle TO_NUMBER function is:

TO_NUMBER( input_value, [format_mask], [nls_parameter] )

 

Parameters

The parameters of the TO_NUMBER function are:

  • input_value (mandatory): This is the value that is to be converted to a number. It can be one of the many data types mentioned earlier, but is most commonly provided as a string.
  • format_mask (optional): This is the format that the output value should be displayed as. It must be a valid number format, which are explained below.
  • nls_parameter (optional): This value is used to determine how the output value is displayed, such as currency symbols and numeric characters.

 

Format Mask

The format mask for this function must be a number format. The possible values for number formats you can use are:

FormatExplanation
9Single number character. Removes leading and trailing zeroes. Includes a leading hyphen (-) for negative numbers.
0Single number character. Includes leading and trailing zeroes.
FMIndicates that the format should supress all leading and trailing blanks
$Include a leading $ sign
BChanges the ‘0’ format and replace leading 0’s with blank spaces.
SInclude poth positive (+) and negative (-) signs
PRIndicate sign of number with angle brakcets (<>)
MIIndicate the minus sign
RN or rnDisplays the number in Roman numerals (upper or lower case)
DIndicates the position of decimal point (.)
GAdds a group separator (often a comma) in a position
,Adds a comma in a position
.Adds a period in a position
CAdds the ISO currency symbol
LAdds the local currency symbol
EEEEDisplays the value using scientific notation
TMDisplays the Text Minimum in TM9(the default) or TME (Scientific notation)
UDisplays in the specified position the Euro (or other) dual currency symbol.
VDisplays the value multiplied by 10n , where n is the the number of 9’s after the letter V. The value may be rounded up if necessary
XReturns the hexadecimal value of the specified number of digits.

If the format mask is not specified, it uses the period character (.) as the decimal place and doesn’t recognise any other symbol.

 

NLS_PARAMETER Explanation

This parameter is used to add extra information to the function in order for the value to be displayed. It works similar to the TO_CHAR function, but has a few differences.

The expression added here will represent the thousand group marker, decimal marker, and the currency symbols to be used. The expression for this parameter can contain one or more of the following parameters, separated by commas:

  • NLS_CURRNECY symbol
  • NLS_ISO_CURRENCY territory
  • NLS_NUMERIC_CHARACTERS dg

With these statements:

  • symbol represents the local currency symbol and must be less than or equal to 10 characters
  • territory is a text expression that identifies the territory whose ISO currency symbol is used
  • dg represents two characters, which are single-byte characters, used for the decimal marker and thousands group marker.

 

Examples of the TO_NUMBER Function

Here are some examples of the TO_NUMBER function. I find that examples are the best way for me to learn about code, even with the explanation above.

Example 1

This example converts a simple string to a number value.

SELECT TO_NUMBER('5467.12') FROM DUAL;

Result:

5467.12

Example 2

This example converts the same string into a number, using the specified format.

SELECT TO_NUMBER('5467.12', '999999.99') FROM DUAL;

Result:

5467.12

Example 3

This example converts a number which has no decimal places in it.

SELECT TO_NUMBER('4687841', '9999999') FROM DUAL;

Result:

4687841

Example 4

This example treats the dollar sign as a currency figure and converts it to a number.

SELECT TO_NUMBER('$65.169', 'L99.999') FROM DUAL;

Result:

65.169

Example 5

This example handles the commas that are used as thousand group markers.

SELECT TO_NUMBER('123,456,789', '999,999,999') FROM DUAL;

Result:

123456789

Example 6

This example takes a complicated string, determines that it is in certain format, and specifies the numeric characters to use

SELECT TO_NUMBER('$17 218,00', 'L999G999D00',' NLS_NUMERIC_CHARACTERS='', ''') FROM DUAL;

Result:

17218

 

Possible Errors Using the TO_NUMBER Function

Some of the errors you might get when using the Oracle TO_NUMBER function are:

  • ORA-01722: invalid number. This happens when the input value does not represent a number. It can also happen when the string supplied as the format mask is not correct.

 

Similar Functions

Some functions which are similar to the TO_DATE function are:

  • TO_DATE – converts a string value to a DATE type.
  • TO_CHAR – converts a number or date value to a string type.
  • CAST – used for many types, including dates

 

Video

For an example of this function, watch the video here.

(Coming Soon)

 

Lastly, if you enjoy the information and career advice I’ve been providing, sign up to my newsletter below to stay up-to-date on my articles. You’ll also receive a fantastic bonus. Thanks!

Image courtesy of digitalart / FreeDigitalPhotos.net

]]>
http://www.completeitprofessional.com/oracle-to_number/feed/ 0