Saturday, October 20, 2007

Como se tornar um verdadeiro Programador - How to a real Programmer

Olá, hoje eu quero comentar sobre um tema que a muito tempo eu queria escrever. Esse tema já foi discutido diversas vezes e você pode encontrar muitas referências no Google (listo algumas interessantes no fim desse artigo). Escrevi esse artigo porque gostaria de dar um foco diferente a esse assunto, mas acho útil você ler os outros artigos os quais tomei também como referência.

A área de TI (Tecnologia da Informação) é bastante vasta, existem muitas áreas específicas que um aspirante pode se deparar no decurso de sua escalada para entrar (e permanecer) nessa área. Não obstante, a área de TI vem crescendo vertiginosamente devido ao grande crescimento tecnológico que passou a ser um diferencial competitivo entre as empresas, tornando a Tecnologia da Informação uma área extremamente atrativa para aqueles que desejam ingressar no mercado de trabalho ou mesmo obter melhores ganhos salariais. Leia meu artigo entitulado Analistas de Sistemas x Analistas de Negócio.

Deixe-me citar algumas opções interessantes para sua escolha.


- Redes
- Banco de dados
- Desenvolvimento
- Análise de Sistemas
- BI (Business Intelligence)
- Segurança da Informação
- Arquitetura de Sistemas
- Dentre outros


Eu acredito que independente de qualquer escolha, para se obter sucesso, é necessário que se tenha alguma aptidão para esse trabalho. Isso porque algumas áreas requerem do profissional grande senso lógico e matemático, além de concentração e espírito para manter-se constantemente atualizado. Completam o perfil adequado uma senso de necessidade de conhecimento e espírito autodidata.


Não precisa se assustar se você não possui alguma dessas qualificações. Talvez você não tenha nascido pré-destinado para trabalhar com bits e bites, mas ainda é possível entrar na área de TI mesmo assim.


Claro que algumas funções mais do que outras necessitam em maior ou menor grau de determinado perfil ou qualificação. Cito alguns exemplos a partir de minha experiência ao longo de mais de 1 década.


1. Desenvolvimento - Capacidade de concentração, senso lógico, perfil autodidatade e pesquisador são diferenciais. Acredite essa é uma área onde aqueles com a personalidade mais introspectiva acabam por se dar muito bem.

2. Análise de Sistemas - Facilidade de comunicação e relacionamento interpessoal, abstração e perfil negociador são essenciais. Aqui o introspectivo dificilmente acabada se dando bem.

Em minha opinião o espírito de trabalho em equipe é sem dúvida um dos mais importantes e deve ser considerado em qualquer indíviduo que deseja ingressar nessa área de trabalho. Apesar de importante, eu não considero isso um grande problema para aqueles que integrem uma equipe de desenvolvimento. Mas, aqui vale uma ressalva - depende da natureza do trabalho.

Profissionais atuando por exemplo em Fábricas de Software modulares permanecem a maior parte do tempo concentrados e introspectos, portanto interagindo pouco com a equipe ao seu redor - em geral desenvolvem seu trabalho a partir de especificações previamente elaboradas por outras equipes. Entretanto há ambientes de desenvolvimento onde a interação entre a equipe é essencial - cito por exemplo a natureza do desenvolvimento OpenSource. No mundo OpenSource essa interação geralmente se dá a partir de Fórums de discussão via WEB.

A área de desenvolvimento é uma área que merece constante atualização por parte do profissional, digo isso em relação a baixa plataforma (PCs), se você quer saber um pouco mais sobre o desenvolvimento em Mainframes leia meu artigo entitulado "Como ser um Programador Mainframe". Manter-se atualizado nessa área não é tão simples como você pode imaginar, mas também não é tão complexo se você tiver foco.

Foco é algo importante, porque ao entrar em desenvolvimento de software você pode se deparar com um emaranhado de Siglas (uma sopa de letrinhas, que pode causar um grande indigestão). Apenas para nos apoiarmos em algo vamos listar algumas.

- XML, XSLT, AJAX, ASP, .NET, XSLFO, VB, HTML, JAVASCRIPT, JAVA, JSP, SERVLET, SOA, XPDL, C, C++, C SHARP, PHP, PERL, SQL, VBA, ABAP, BASIC, LISP, PHYTON, TCL, LUA, WebServer, JBoss, Tomcat, ARIS.

É claro que eu misturei linguagens, conceitos, ferramentas só pra tornar a sopa mais espessa. Mas se você quer ter uma idéia de quantas linguagens de programação existem por aí visite o Wikipedia nesse endereço http://en.wikipedia.org/wiki/Categorical_list_of_programming_languages, você vai se surpreender.

Agora, a grande questão é:

-Preciso realmente saber tudo isso ?
Bem, sim e não. Lembre-se do que eu disse no início desse texto, a área de TI tem se tornado muito atrativa. Isso significa que atualmente existe uma grande demanda de profissionais, que saem das universidades todos os anos, em consequência existe uma grande concorrência nesse mercado. Então o ideal é que você saiba tanto quanto possível, um pouco sobre tudo, de forma a se tornar um profissional generalista.

Mas eu tenho boas e más notícias. O mercado tem mudado ao longo dos anos, e a partir do fim dos anos 90, o mercado tem dado preferência aos profissionais especialistas.
Isso pode ser uma boa notícia - você já não precisará conhecer tudo.

Então há uma luz no fim do túnel (e não é um trem na contra-mão).

Vamos tirar proveito disso.
Se você quer ser um desenvolvedor, você precisa primeiro Focar. Se você já conhece alguma linguagem de programação eu recomendo que busque focar no desenvolvimento para WEB. E porque WEB ?

A resposta é a WEB está em toda a parte. Todas as grandes empresas desenvolvem sistemas que de uma forma ou de outra tem uma ponta na WEB. Seja para a criação de páginas, seja para desenvolver sistemas que interajam com o cliente final ou fornecedores, a WEB ultrapassa limites e tem se tornado um diferencial estratégico das empresas para alcançar seus consumidores e trocar informações.

Agora, porque eu estou dizendo isso. Tenho notado que grande parte daqueles que iniciam na arte da programação acabam por perder muito tempo desenvolvendo software em seus estudos que nada tem a ver com aquilo que as empresas desejam.
Lembre-se essa é uma área vasta. Você tem diante de si, um quadro branco e um leque de centenas de cores para pintá-lo. Se você não focar você corre o risco de borrá-lo - e olhe que estamos falando agora de sua carreira.

A arte da programação nos dá muitas oportunidades de perder o foco. Por exemplo, ao trabalhar com Java você irá se deparar com milhares de maneiras de se fazer a mesma coisa, e nem estou falando sobre lógica de algoritmos, estou dizendo que existem milhares de soluções prontas (os chamados pacotes) que visam facilitar (ou complicar) a vida do desenvolvedor.

[continua em breve...]

Links interessantes.
http://samizdat.mines.edu/howto/HowToBeAProgrammer.pdf
http://www.reiwolf.com.br/10dicasprogramador.htm
http://www.ftec.com.br/wordpress/?p=287#comment-1558 - Interessante

Sunday, September 30, 2007

A SAP Tutorial - The First Steps

Currently I'm working in a SAP Project. I'm a lucky guy because i have started in a great project into my organization - it's a internal implementation project and as you will see I'm a self taught person. So when I perceived an opportunity knock in the door I tried beforehand to start looking some tutorial to learn a little the first steps in SAP World.

If you don't know SAP has been a leader global for many years in the ERP scene. The quality of your products become this germany's Enterprise a top ten between the biggers suppliers of the ERP in the World.

You can read a little SAP history here.

Returning to our subject, first I looked for tutorials in Google and later used Emule but I experienced great difficulties in get good materials. The major materials that I have encountered are aimed to a public that already has some skills in the SAP tool. Some tutorials or EBooks are much theoricals others are much technicals serving only like reference.

Believe i encountered a book named SAP For Dummies and i must to recognize it's a good start, but the autor lay emphasis to the architectural aspect of the SAP R3. (what isn't a miss). But like a Business Consultant (and old System Analyst) i hoped something that explain the questions relateds to interoperability between enterprise process . After all we are talkin' in ERP (Enterprise Resource Planning).

Ok, let me told you what i found ?

Today I know to be impossible to collect everything about SAP R3 in a only book. SAP has been aimed for almost all segments of the business (from Utilities for Aeronautic Industries).


You can be asking: - Why a person that was inserted in a SAP implementation project needs some tutorials ?

Ok, i need to say a little about this experience.

Before started in this project i worked with implementation of the ERP IFS in this same organization, you can read more about it in this [link], after tree months the organization has decided to change to SAP ERP. If you want to know more about my organization [click here].

SAP always was considered a "almost" unachievable tool in IT mean. It because only great organizational adopt it. The professional courses are very expensives and the market is "closed". Even working with it today I think that still there is a "mistery" in turn of it.
I have perceive that it's caused in part for the self professionals working in around and in part for the self SAP Corporation.

It send me at past, when the Mainframe was a black box - it doesn't changed completelly yet. You can confirm it searching employes available in this area. There's no qualified professionals to fullfill every demands.

IBM on demands !? ;-)

IBM closed the doors to keep the Mainframe development restrict to your clients, in other words the courses like CSP, COBOL, VSAM and other utilities associated was packaged in the sell. There wasn't nothing to impede you of the take class in a room on the one of various IBM filials, but it was almost impossible considering the expensives values to reach a certificate. Even those that had some dollars to waste still need of the a Mainframe to test your knowledgment after.
Today the firms to pay a high price for it.

If you want to enter in Mainframe world you need of the QI (No quocient intelligence. Who's indicate!), take a class in a IBM or enter like a trainee in any IBM client wishing work in development area. Oh, i need to remember you that IBM haven't more these courses as it was obselete (no sense). ;-(

SAP seems goes to same way. but

There's some areas that you can to choose in SAP World. I would talk only two principals that i have some knowlegment.

. Development (Programmer, Technical Support)
. Functional ( Business )

Let's take a ideia that you want do become a SAP Developer. You will need learn ABAP language -

So, said it what i intend to do with it article ? Well, i want to desmitificate a little more SAP R3 (or ECC 6.0) demonstrating some basics elements (screens, tools etc).

continues... (as soon)

Wednesday, September 26, 2007

Indexing your Site

At the time i have created this page I wanted to know how i can post it to Google Ranking to improve the search in Google Search Engine. Look at http://googlewebmastercentral.blogspot.com/2007/04/indexar-o-seu-site.html

A Litte History about ME ;-)

HELLO WORLD!
As you can already know I like to exploit this space to talk about my professional experience, this way I can take advantage it to publish my knowledgment and current activities. So you can know a little more about me.

BORN THE DEVELOPER Part I - MAINFRAMES, COBOL, BITNET AND EMOTICONS
I started in 1990, and after it I worked about fifteen years with development and system analisys in IT, "having" experienced about four years in development and support on Mainframe environment - Yes believe-me, in my career I worked with oldier COBOL, VSAM and CSP.
-About COBOL I think that itsn't necessary to introduce it.
-VSAM it's far to be a complete database but even today you can find many systems developed over it even in this days.
-CSP, now substituted by VisualAge and this years
If you have my age (or more) and has worked with Mainframe in 80' decade probably you listened to talk of the oldier BITNET (a grandmother of the INTERNET of last days) - if you get it, maybe we have been chatted sometime typing about a 3270 terminalS in old years. :-p
Could you think in MSN in that times ? Today you can use pictures in place of the oldiers Emoticons, send pictures, music and files in a click of mouse. Let's go i would like to read something about your experience! ;-)
I miss that times. Work with Mainframe give me another sense of things - The mainframe people was more adult and I was only a young boy full of wish listening NOEL, PetShopBoys and learning to fly with Pink Floyd and . Yes, i know that it sounds strange and it was more a paradox in my life.

The Truely
I don't started programming with Cobol the true is... my first real project was developed with Clipper.

BORN THE DEVELOPER II - A SYSTEM ANALYST VISION
In this time i worked like Programmer, Supporter and DBA (Database Administrator). At the same time i worked with language C, C++ (Hello World!), CLIPPER and parallel was Network Admin (Novell). In old years it was more easy to accumulate many functions than today.M ean 90' decade I started working with VB, DelphI, PASCAL and almost every databases of market including SQL/DS (Mainframe), DB2, Sybase (in old years) and SQLServer and ORACLE. In this time i become a System Analyst splitting my time between users, specifications and codings.Could read my article about the System Analyst versus Programmer/Analyst

THE WEB BOOM
With advent of WEB, after middle of 90' years i aimed a new World (Internet Boom decade), in this time i worked with ASP and more recently with JAVA. erWith Java, i took advantage of Object Oriented language characteristic (OO), and learned (and used) some methodologies of development and experienced the UML Notation and Patterns (Hello Gang of four').In start 2000' years i was interesting in JAVA Language, a good means to learn more about OO Development in WEB environment. It doesn't was because JAVA was a promise, but because i glimpsed a new opportunity - Di facto JAVA became a great language, even though many opposite opinions. JAVA keep good salaries yet and it's a good way to enter in IT Market.

TURNING THE TABLE - THE OLD WORLD
After 2003 i starter to fullfill some GAPs in my career, glimpsing a new challenge i turned the table (sorry i dont't the better expression for say it)and started in ERP World.
Believing in my change force i left the development world (ok, not totally) to learn more about process and business. It gives me a better vision aboutthe Enterprise World under my feets. I always to consider the development world more introspective because it demands more concentration, in fact i havesome characteristics but i prefer to keep communicating with people more time.
On 2004 I started with IFS ERP in a internal implementation on older CPM, after three years i passed to work with SAP (a bigger leader of market)
Like a TI Professional i have accumulate some experiences in several areas.

.Controle de Estoque
.Purchase
.Contas Pagar/Receber
.Human Resources
.Projects

TURNING THE TABLE - THE NEW WORLD
Currently i'm working in a SAP Project where i'm currently i'm developing into SAP PS Module time. SAP PS (SAP Project System).before, as you can have to read, i work with ERP IFS where i worked likeProject Leader and Technical Consulting
Yes, i know i don't seem a oldier man... yet ;-)