UNIVERSIDADE REGIONAL INTEGRADA DO ALTO URUGUAI E DAS MISSÕESCAMPUS SANTIAGO
DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO
JONAS MAYER FERREIRA
PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DEDESENVOLVIMENTO DE SOFTWARE
Santiago/RS2014
JONAS MAYER FERREIRA
PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DEDESENVOLVIMENTO DE SOFTWARE
Monografia apresentada como requisito paraconclusão do curso de Ciência da Computaçãopela Universidade Regional Integrada do AltoUruguai e das Missões.
Orientador:Prof. Luiz Henrique Rauber Rodrigues
Coorientadora: Prof. Lucieli Tolfo Beque Guerra
Santiago2014
JONAS MAYER FERREIRA
PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DEDESENVOLVIMENTO DE SOFTWARE
Monografia apresentada como requisito parcialpara conclusão do curso de Ciência daComputação pela Universidade RegionalIntegrada do Alto Uruguai e das MissõesCampus Santiago.
Aprovado em 4 de dezembro de 2014.
BANCA EXAMINADORA
_____________________________________Prof. Esp. Luiz Henrique Rauber Rodrigues
_____________________________________Prof. Me. Eduardo Ferreira da Silva
_____________________________________Prof. Me. Cristiano Eduardo Wendt
“There is no such thing as perfect in this
world. That may sound cliche, but it's the
truth. The average person admires perfection
and seeks to obtain it. But, what's the point of
achieving perfection? There is none. Nothing.
Not a single thing. I loathe perfection! If
something is perfect, then there is nothing left.
There is no room for imagination. No place
left for a person to gain additional knowledge
or abilities. Do you know what that means?
For scientists such as ourselves, perfection
only brings despair. It is our job to create
things more wonderful that anything before
them, but never to obtain perfection. A
scientist must be a person who finds ecstasy
while suffering from that antimony.”
Tite Kubo - Bleach (Mayuri Kurotsuchi)
RESUMO
Os cursos de graduação da área de Tecnologia da Informação (TI) tais como Ciência daComputação, Sistemas de Informação e Engenharia de Software, abrangem uma área de amploespectro. Além disso os cursos da área ainda tem de lidar com um dilema, preparar o aluno para omercado de trabalho ou seguir uma abordagem de ensino mais acadêmica. Consequentemente, emdecorrência deste contexto e devido a complexidade e amplitude da área, o recém-graduado nãose encontra capacitado para atender os requisitos irrealistas impostos pelo mercado. De formasemelhante, a amplitude da área por vezes resulta na confusão do graduando, que muitas vezesnão sabe em que campo se especializar durante a graduação e que setor seguir após a conclusão damesma. A falta de orientação, devido a escassez de informação formal fidedigna e acessível sobreo mercado, aspectos da profissão e as competências e habilidades requeridas, bem como acarência de estudos sobre aspectos de desenvolvimento de software aplicados que buscam aformação prática dos acadêmicos, colaboram para a falta de profissionais no setor. Ciente dessanecessidade foi considerado um estudo com o propósito de orientar os alunos sobre aspectos dagraduação, da formação e da carreira no setor de TI, informá-los também sobre seu papel comocientistas e elucidar habilidades e competências necessárias para a atuação no mercado dotrabalho. O estudo se propõe também a fornecer uma visão sobre aspectos do desenvolvimento nomundo real através de pesquisas bibliográficas, da análise de dados coletados a partir da aplicaçãode questionários em profissionais do setor e de perspectivas sobre a experimentação da aplicaçãodesses aspectos em projetos. Dessa forma o estudo espera auxiliar na formação de acadêmicos daárea de TI e orientar sobre aspectos da carreira de profissionais do setor de TI. Palavras-chaves: graduação; mercado de trabalho; desenvolvimento de software;acadêmico; profissional.
ABSTRACT
The undergraduate courses in Information Technology (IT) area such as Computer Science,Information Systems and Software Engineering, cover an area of broad spectrum. In additioncourses in the area still have to deal with a dilemma, prepare the student to job market or take anapproach more academic. Consequently, due the context and the field amplitude, the justgraduated student are not qualified to meet the unrealistic requirements imposed by the market. Ina similar way, the field amplitude results in the confusion of the undergraduate student, that oftendo not know what filed which fields to specialize during the course and witch sector follow afterthe conclusion of it. The lack of orientation, due to lack of reliable and accessible formalinformation about the market, aspects of the profession and the necessary skills as well as thelack of studies on aspects of software development applied that seek practical training of students,contributes to the lack of professionals in the sector. Aware of this need was considered a study inorder to guide students on aspects of graduation, training and career in the IT sector, also informthem about their role as scientists and elucidate skills and competencies necessary for theperformance in the job market. The study also proposes to provide insight into aspects ofdevelopment in the real world through bibliographical research, analysis of data collected fromthe application of a survey in professionals of the sector and perspectives of the implementation ofthese aspects in projects. This way the study hopes assist in the formation of academics in IT andguidance on aspects of careers of professionals in the IT sector. Key-words: undergraduate degree; job market; software development; academic;professional.
LISTA DE ILUSTRAÇÔES
1. Figura 1: Estilos De Notas Baseando Em (ASC, 2014).......................................................31
2. Figura 2: Relacionamento Entre Problemas Práticos E Pesquisa (adaptado WAYNE, 2003,
P.53)......................................................................................................................................37
3. Figura 3: Representação Da Hierarquia De Um Projeto Open Source (adaptada KAPUR,
2010, P.65)............................................................................................................................41
4. Figura 4: Ciclo De TDD Adaptado De (KOSKELA, 2007, P.16)........................................48
LISTA DE TABELAS
Tabela 1: Disposição dos indivíduos da amostra......................................................................64
Tabela 2: Nível de Escolaridade da amostra.............................................................................65
Tabela 3: Nível de Graduação da amostra.................................................................................65
LISTA DE ABREVIATURAS E SIGLAS
ACM - Association for Computing Machinery
ACTFL - American Council on the Teaching of Foreign Languages
BDD - behaviour-driven development
CPU - Central Processing Unit
GPL - GNU General Public License
GPLv3 - GNU General Public License v3.0
GUI - graphical user interface
IEEE - Institute of Electrical and Electronics Engineers
ISO - International Organization for Standardization
MAD - Methodology of Anarchic Distinction
MEC – Ministério da Educação
MOOC - Massive Open Online Courses
MVC – Model view controller
RPG - Role-Playing Game
SaaS - Software as a service
SASS - Syntactically Awesome Style Sheets
SBC- Sociedade Brasileira de Computação
TDD - Test-driven development
TPS - Toyota Production System
SUMÁRIO
INTRODUÇÃO.......................................................................................................................13
1.1 OBJETIVO.....................................................................................................................15
1.2 JUSTIFICATIVA............................................................................................................16
2 FORMAÇÃO ACADÊMICA..............................................................................................17
1.1 CURSOS DE GRADUAÇÃO........................................................................................17
1.1.1 Bacharelado em Ciência da Computação...........................................................18
1.1.2 Bacharelado em Engenharia da Computação....................................................18
1.1.3 Bacharelado em Engenharia de Software..........................................................19
1.1.4 Bacharelado em Sistemas da Informação...........................................................19
1.2 ÁREAS DO CONHECIMENTO...................................................................................20
2 APRENDIZADO E ESTUDO.............................................................................................22
2.1 ASPECTOS NEUROLÓGICOS....................................................................................22
2.1.1 Memória................................................................................................................23
2.1.2 Fatores chave para o aprendizado......................................................................24
2.1.3 Neuroplasticidade.................................................................................................26
2.2 ASPECTOS TEÓRICOS................................................................................................26
2.2.1 Metacognição........................................................................................................27
2.3 ASPECTOS TÉCNICOS................................................................................................28
2.3.1 Música....................................................................................................................28
2.3.2 Leitura inteligente.................................................................................................29
2.3.3 Plano de Estudo....................................................................................................29
2.3.3.4 Tomando notas................................................................................................30
2.3.5 Inglês......................................................................................................................31
2.3.6 MOOCs..................................................................................................................33
2.3.7 Especificação de processos...................................................................................33
2.3.8 Prática....................................................................................................................34
3 PESQUISA............................................................................................................................35
3.1 MÉTODO CIENTIFICO................................................................................................37
3.2 MÉTODOS E METODOLOGIA DE PESQUISA.........................................................38
3.3 ESCRITA........................................................................................................................39
4. PROJETOS DE DESENVOLVIMENTO DE SOFTWARE...........................................40
4.1 PARTICIPAÇÃO EM PROJETOS OPEN SOURCE....................................................40
4.1.1 GitHub...................................................................................................................42
4.2 CRIAÇÃO DE PROJETOS OPEN SOURCE...............................................................42
4.2.1 Definindo o nome..................................................................................................43
4.2.2 Descrição do projeto.............................................................................................43
4.2.3 Comunicação.........................................................................................................44
5 DESENVOLVIMENTO DE SOFTWARE.........................................................................45
5.1 POLYGLOT PROGRAMMING....................................................................................45
5.2 FUNCTIONAL PROGRAMMING...............................................................................46
5.3 POLYGLOT PERSISTENCE........................................................................................46
5.4 NOSQL...........................................................................................................................47
5.5 VERSION CONTROL...................................................................................................47
5.6 TDD................................................................................................................................48
5.7 CONTINUOUS INTEGRATION..................................................................................49
5.8 CONTINUOUS DELIVERY.........................................................................................49
5.9 BDD................................................................................................................................50
5.10 SAAS............................................................................................................................50
5.11 PREPROCESSADORES CSS.....................................................................................51
6 MERCADO DE TRABALHO E CARREIRA..................................................................52
6.1 CARGOS........................................................................................................................52
6.2 PROFISSIONALIZAÇÃO.............................................................................................53
6.2.1 Soft Skills...............................................................................................................54
6.3 JOB HUNT.....................................................................................................................56
6.3.1 Definição de Parâmetros......................................................................................56
6.3.2 Escolha de companhias........................................................................................58
6.3.3 Pesquisa aprofundada..........................................................................................58
6.3.4 Preparação.............................................................................................................58
6.3.4 Résumé...................................................................................................................59
6.3.5 Submissão..............................................................................................................60
6.3.6 Phone Screen.........................................................................................................60
6.3.7 Entrevista...............................................................................................................60
6.3.8 Negociações Finais e Contratação.......................................................................61
6.4 CARREIRA....................................................................................................................61
6.5 SAÚDE...........................................................................................................................62
6.5.1 Café........................................................................................................................62
7. QUESTIONÁRIO...............................................................................................................64
7.1 REFLEXÕES SOBRE O QUESTIONÁRIO.................................................................66
8. PUBLICAÇÕES E APRESENTAÇÕES...........................................................................68
CONCLUSÃO.........................................................................................................................69
APÊNDICE A – DESCRIÇÃO DOS PROJETOS INDEPENDENTES USADOS COMO
EXEMPLO DA APLICAÇÃO DE TRENDS TECNOLÓGICAS......................................85
APENDICE B - QUESTIONÁRIO.......................................................................................89
APÊNDICE C– RESULTADOS DO QUESTIONÁRIO...................................................111
APENDICE D – METODOLOGIAS E TÉCNICAS PARA O ESTUDO DA LÍNGUA
INGLESA...............................................................................................................................140
13
INTRODUÇÃO
Os cursos de graduação na área Tecnologia da Informação (TI) abrangem uma área
extensa, munindo-se tanto de abordagens teóricas quanto de noções práticas para a formação
de profissionais. Entretanto o graduando que se apoia somente na formação provida pelas
disciplinas do curso, não atenderá as exigências do mercado, isto pode ser constatado pela
pesquisa “Education to employment: Designing a system that works” realizada em 9 países,
entre eles o Brasil, que afirma que menos da metade dos empregadores acreditam que a
graduação é suficiente para uma formação adequada, no caso do Brasil este índice chega a
59% (MOURSHED, 2012).
Essas constatações reforçam a importância de estudos que auxiliem o processo de
formação de profissionais preparados para o mercado. Tendo este estudo também em
consideração, e atrelando-se a anseios populares a acadêmicos e as suas incertezas sobre o
futuro profissional, foi proposto um estudo que auxiliasse a formação de profissionais na área
de TI, especialmente os do setor de desenvolvimento de software.
Durante o decorrer desta pesquisa aborda-se tópicos que visam o aprimoramento do
profissional de TI formado, principalmente o que pretende seguir no setor de desenvolvimento
de software. Entre os tópicos abordados no segundo capítulo, está o aprendizado, abrangendo
o aprendizado na perspectiva do estudante, invitando o estudante a tomar a responsabilidade
pela sua própria formação. Para isto, o estudo abrange metacognição, teoria do aprendizado e
aspectos neurológicos, apresentando também técnicas e ferramentas que podem a vir a
contribuir para o aprendizado destes profissionais.
Ao passo que apenas teorias não criam práticas e experiências técnicas, foi-se além.
Se buscando reforçar a aplicação prática do aprendizado, e portanto o ganho de experiência,
no terceiro e quarto capítulo são levantados princípios de pesquisa e da criação e participação
em projetos de desenvolvimento de software open source.
No quinto capítulo, procura-se atualizar o estudante de trends tecnológicas no setor
de desenvolvimento de software, através da apresentação de algumas destas obtidas através da
análise de pesquisas e surveys do mercado de desenvolvimento de software. Objetivando uma
melhor elucidação, há o fornecimento da aplicação de algumas destas trends em projetos de
desenvolvimento de softwares independentes ao estudo.
No capítulo seis são avaliados soft skills, cargos, objetivando-se a solidificação do
14estudante em relação a linha desejada. É apresentado também, de forma genérica o processo
de job hunt, visando a facilitação da entrada de profissionais no mercado. Sendo apresentado
também perspectivas sobre o desenvolvimento da carreira no setor de desenvolvimento de
software à possíveis carreiras alternativas.
Nos capítulos finais é explorado de forma superficial os resultados de um
questionário aplicado a profissionais já atuantes no mercado de trabalho, feito para validar o
dilema transacional da academia ao mercado de trabalho e o aprendizado necessário e/ou
requerente nesta migração. Assim como capítulos referente as publicações e apresentação
referentes a pesquisa realizadas durante o decorrer desta monografia. O questionário completo
e seus resultados podem ser encontrados nos Anexos B e C respectivamente.
151.1 OBJETIVO
Este estudo tem por objetivo auxiliar na formação de acadêmicos dos cursos de
graduação da área de tecnologia da informação, através do fornecimento de fatores que
possam auxiliar em sua formação acadêmica e profissional. Buscando auxiliar a qualidade e
efetividade do aprendizado através da exploração de metacognição, teoria do aprendizado e
aspectos práticos, da aplicação e ganho de experiência através da disposição de dados sobre
participação em projetos de pesquisa e desenvolvimento de software open source e facilitar a
entrada no mercado de trabalho e desenvolvimento profissional dos acadêmicos através do
fornecimento de perspectivas sobre o mercado de desenvolvimento de software, e trends
tecnológicas.
161.2 JUSTIFICATIVA
Preencher a lacuna entre o profissional formado e o requerido pelo mercado de TI,
principalmente para o mercado de desenvolvimento de software, envolve um amplo escopo.
Este estudo se focou em auxiliar a parcela do problema referente aos estudantes/profissionais,
buscando fornecer esclarecimento sobre como melhorar a qualidade do aprendizado,
aquisição de experiência e a entrada no mercado de trabalho. Postergando-se assim a parcela
do problema referente ao ensino da disciplina de Ciência da Computação.
Buscando maior acuidade e diversidade de perspectivas, o estudo faz uso de uma
gama de variedades de pesquisas, que incluí pesquisa bibliográfica, aplicação de questionário
e perspectivas da aplicação de tecnologias e técnicas em projetos de desenvolvimento de
software.
172 FORMAÇÃO ACADÊMICA
A ciência da computação é definida por GIBBS como sendo o estudo de processos
computacionais e estruturas da informação incluindo suas relações com hardware, seus
modelos linguísticos e suas aplicações (GIBBS apud TRUCKER, 2004). A definição de
GIBBS aborda um conceito fundamental da ciência da computação, sua relação com
informação e processos.
Entretanto a ciência da computação por vezes é vinculada exclusivamente com o uso
de computadores (DICTONARY.COM, 2014),tamanha delimitação reduz o escopo da
disciplina, podendo assim diminuir sua importância. DIJKSTRA confronta essa noção em sua
célebre frase "Computer Science is no more about computers than astronomy is about
telescopes."1 (DIJKSTRA apud IEEE COMPUTER SOCIETY, 2014).
A ciência da computação é considerada uma das disciplinas mais importantes da
atualidade (MEC, 2012), possuindo influencia na constituição da tecnologia e
consequentemente na sociedade (BJÖRKMAN, 2006). Influencia que também se estende a
outras áreas promovendo uma interdisciplinaridade singular. No entanto, o crescimento da
computação e consequente expansão das suas já numerosas áreas de conhecimento (THE
JOIN TASK FORCE ON COMPUTING CURRICULA, 2013) e a interdisciplinaridade ímpar
da disciplina afetam o seu escopo podendo dificultar ainda mais o seu ensino.
1.1 CURSOS DE GRADUAÇÃO
A Sociedade Brasileira de Computação (SBC) divide os cursos de graduação da
aérea de computação em três categorias de acordo com o grau de interação com a ciência da
computação (SBC, 2005, p.8). Sendo estas, os cursos que tem computação como atividade-
fim denominados Bacharelado em Ciência da Computação, Engenharia de Computação ou
Engenharia de Software (MEC, 2012), os cursos que tem computação como atividade-meio
como o Bacharelado em Sistemas de Informação, e os cursos de Licenciatura em Computação
(SBC, 2005, p.8).
Nesse estudo será abordado principalmente aspectos dos cursos de graduação da área
de ciência da computação que tenham computação como atividade-fim e atividade-meio, mas
1 “Ciência da Computação não é mais sobre computadores do que a astronomia é sobre telescópios.” - tradução nossa
18cabe apontar que a graduação não é o único meio de formação formal na área. Existe a opção
de cursos superiores de tecnologia (MEC, 2001) no entanto estes cursos são focados em áreas
de especialização especificas e possuem um período de duração menor (SBC. 2005, p.8).
1.1.1 Bacharelado em Ciência da Computação
O curso de Bacharelado em Ciência da Computação possui como atividade-fim
predominante a ciência da computação (SBC. 2005), abordando valores relacionados ao
desenvolvimento científico e técnico (URI, 2008). O curso abrange também valores sociais
tais como transparência, criatividade, independência, cooperação, socialização e respeito,
visando a integração profissional e a formação de profissionais conscientes da realidade
sócio-politica (URI, 2008).
Os cientistas da computação trabalham com teoria, prática e/ou criação (MEC,
2012). São responsáveis pelo desenvolvimento científico e tecnológico da computação (MEC,
2012), trabalhando com altos níveis de conhecimento teórico e inovação, que são aplicados na
solução de problemas complexos e desenvolvimento de novas tecnologias (SLOAN, 2014).
1.1.2 Bacharelado em Engenharia da Computação
O curso de bacharelado em Engenharia da Computação possui a ciência da
computação como atividade-fim (SBC, 2005) incluindo em sua base também a Eletrônica
(MEC, 2012). O curso é focado no desenvolvimento de sistemas que integrem equipamentos
(hardware) e programas (software) tendendo principalmente as áreas de áreas de controle e
automação (FIGUEIREDO, 2010).
O Engenheiro da Computação por sua formação híbrida pode aturar na Informática
Industrial e de Redes Industriais, Sistemas de Informação Aplicados à Engenharia, Sistemas
de Computação e Computação Embarcada (MEC, 2014, p.6). Produzindo produtos de
eletrônica de consumo, de comunicações e de automação e sistemas de computação
embarcados (MEC, 2012, p.2).
191.1.3 Bacharelado em Engenharia de Software
O curso de bacharelado em Engenharia de Software, pode também ser considerado
um curso que tem a ciência da computação como atividade-fim. Tento como disciplina núcleo
a engenharia de software, sendo esta, uma área de conhecimento da ciência da computação, e
possuindo também fundamentos de engenharia adicionada ao currículo base, o curso de
Engenharia de Software se propõe a formar profissionais capazes de atual em diversos setores
de TI como indústria, empresas, pesquisa e consultoria (FIGUEIREDO, 2010) em cargos que
expressem uma relação com engenharia de software.
Um bacharel em engenharia de software ou engenheiro de software desempenha
atividades de gestão do projeto de software, como a definição, construção e manutenção de
software e de seus respectivos processos (FIGUEIREDO, 2010). Se dispondo sobretudo a
confecção de sistemas de alta qualidade de maneira sistemática, controlada, eficaz e eficiente
que levem em consideração questões éticas, sociais, legais e econômicas (MEC, 2012).
1.1.4 Bacharelado em Sistemas da Informação
A SBC define um sistema da informação como sendo um conjunto de componentes
inter-relacionados que servem ao propósito de apoiar organizações nos processos de tomada
de decisões e gerenciamento através da obtenção, processamento, armazenamento e
distribuição de informações (SBC, 2005,), influenciando tanto nas operações e nas estratégias
das organizações (MEC, 2012).
O curso de Bacharelado em Sistemas de Informação possui a ciência da computação
como atividade-meio (SBC. 2005), engloba também aspectos básicos de administração e
abrange sistemas da informação (URI, 2013). Uma vez que a área de sistemas da informação
lide com sistemas complexos que requerem tanto de competências técnicas quanto
organizacionais (MEC, 2012).
O curso propõe a formação de um profissional que esteja habilitado para atuar na
pesquisa, desenvolvimento e gestões de sistemas da informação (SBC, 2005), sendo capazes
de executar as atividades de análise, planejamento, desenvolvimento, utilização e avaliação de
tecnologias de informação e sistemas de informação (URI, 2013).
201.2 ÁREAS DO CONHECIMENTO
A versão de 2013 das diretrizes curriculares para programas de graduação em
Ciência da Computação confeccionadas pela The Joint Task Force on Computing Curricula
uma associação entre a Association for Computing Machinery (ACM) e a Institute of
Electrical and Electronics Engineers Computer Society (IEEE Computer Society) define o
corpo de conhecimento da ciência da computação em 18 áreas de conhecimento,
correspondentes a áreas de estudos na computação (THE JOIN TASK FORCE ON
COMPUTING CURRICULA, 2013), sendo elas:
• Algoritmos e Complexidade
• Arquitetura e Organização
• Ciência Computacional
• Estruturas Discretas
• Gráficos e Visualização
• Interação Homem-Máquina
• Garantia da Informação e Segurança
• Gerenciamento de Informações
• Sistemas Inteligentes
• Redes e Comunicações
• Sistemas Operacionais
• Desenvolvimento baseado em Plataforma
• Computação Paralela e Distribuída
• Linguagens de Programação
• Fundamentos de Desenvolvimento de Software
• Engenharia de Software
• Fundamentos de Sistemas
• Temas Sociais e Prática Profissional
Sendo que estas áreas não precisam necessariamente corresponder a disciplinas do
curso, podendo uma disciplina incorporar várias áreas do conhecimento (THE JOINT TASK
FORCE ON COMPUTING CURRICULA , 2013, p.28). Cabe citar que este é um padrão
condizente com as estruturas e metodologias de ensino superior estado unidenses, podendo se
21diferenciar do contexto brasileiro, uma vez que o Brasil pode apresentar demandas ou
carências tecnológicas que divergem do contexto norte-americano, como por exemplo,
circuitos integrados, setor relativamente recente no país, que teve sua primeira fábrica
inaugurada em 2010 (OFICINA DA NET, 2010).
Ao citar essa classificação, visa-se ressaltar a amplitude do espectro das áreas de
conhecimento da ciência da computação e citar as principais possíveis áreas de especialização
disponíveis aos acadêmicos. Estas áreas podem representam um ponto inicial para a escolha
da área de especialização, bem como seleção de demais áreas de interesse.
222 APRENDIZADO E ESTUDO
Segundo HUNT (2008) palavra “educação” vem do latim “educare”, que significa
“conduzir para fora”. No entanto, como apontado por HUNT, a educação é comumente
tratada como algo que é feito para o aluno, algo que é “despejado” sobre o aluno. É
importante que professores e alunos estejam cientes que educar não é a transmissão do
conhecimento, e sim o gerenciamento das condições para a construção do mesmo (FREIRE
apud CHAMOT, 2010).
A construção de conhecimento não precisa ser um processo gerenciado por tutores ou
administrado por instituições. E portando, não se limitando ao escopo desta. De acordo com o
questionário aplicado em profissionais de TI atuantes no mercado presente no APENDICE B,
68% dos profissionais de TI não acredita que a graduação seja o suficiente.
O autor de ficção cientifica ASIMOV expressa sua visão sobre educação como,
"Self-education is, I firmly believe, the only kind of education there is."2 (HOWARD, 2009).
Sendo a base para o aprendizado independente ou autodidatismo a compreensão de princípios
neuro cognitivos, metacognição e teoria do aprendizado.
2.1 ASPECTOS NEUROLÓGICOS
Uma interessante analogia é feita por HUNT quando o mesmo compara o
funcionamento do cérebro humano com o funcionamento de um computador. Cabe apontar
que o cérebro humano não é um dispositivo mecânico, não podendo ser programável ainda.
Sendo que o mesmo, diferente de computadores, é incapaz de executar uma mesma ação de
forma idêntica repetidas vezes (HUNT, 2008).
De acordo com HUNT, se pode dividir o cérebro humano em duas CPUs (Central
Processing Unit), que representariam dois modos de processamento executados pelo cérebro
A CPU 1 com processamento linear, que representaria o modo de processamento linear ou
modo L responsável pelo processamento verbal e a CPU 2 que possui um estilo de
processamento assíncrono holística, o modo rico ou modo R responsável pelo processamento
não-verbal. O modo L teria uma velocidade de processamento considerada lenta enquanto
comparado com o modo R (HUNT, 2008).
Para um bom funcionamento cerebral ambos os modos são necessários, o modo R é
2 “Autoeducação é eu firmemente acredito, o único tipo de educação existente.” - tradução nossa
23um fator crítico para a intuição, resolução de problemas e criatividade (HUNT, 2008),
enquanto o modo L permite lidar com detalhes e a realização de tarefas. O modo R apesar de
possuir um papel fundamental, sendo responsável por atividades como busca na memória de
longo prazo por processamento secundário de ideias. No entanto, apesar de reconhecer e
buscar elementos verbais, o modo R não faz processamento verbal, não podendo ser
controlado de maneira direta (HUNT, 2008).
O modo R desempenha muitas vezes o papel de uma thread em segundo plano, que
processa problemas, cria soluções ou preenche lacunas (HUNT, 2008). Por isso não é
incomum encontrar a resolução de problemas, ou criar um algoritmo, quando se está distraído,
por exemplo, quando se está deitado prestes a dormir ou se está tomando banho. Nessas
situações, o cérebro “libera” processamento para o modo R. É sugerido por HUNT que o uso
do modo L e modo R implicariam em um aumento de performance (HUNT, 2008).
2.1.1 Memória
As memórias são mantidas por um ciclo de limpeza, inicialmente atribuído a um
mecanismo associado com a proteína PKMzeta (HUNT, 2008). Entretanto essa descoberta foi
contestada por estudos mais recentes (KWAPIS e HELMSTETTER, 2013), necessitando
assim, mais pesquisas para o esclarecimento do tema.
O objetivo principal da educação é ajudar alunos a armazenar informação na
memória de longo prazo para uso posterior. Os dois maiores problemas associados ao uso de
memória de longo prazo, em uma perspectiva de aprendizado, são a transferência da
informação para a memória de longo prazo com precisão e o acesso preciso as informações
armazenadas nesta (VOCKELL, 2011).
A memória de longo prazo podem ser classificadas em três categorias.
• Memória episódica - referente a habilidade de armazenar memórias de episódios
pessoais do passado como imagens;
• Memória semântica - contem fatos e informação generalizada, possuindo
informação verbal, regras, conceitos, princípios e habilidades de resolução de problemas,
armazenando essa informação na forma de redes ou esquemas;
• Memória procedural - se refere a habilidade de lembrar como executar uma
tarefa ou empregar uma estratégia, sendo aparentemente armazenados em passos sequenciais
24ou pares de estímulo-resposta;
Embora ainda não esteja claro como essas memórias se relacionam já se sabe que
elas não operam de forma isolada. O conhecimento que não é importante é eventualmente
esquecido. Por importância, refere-se ao grau de relevância e pertinência com o conhecimento
de cada indivíduo. O fator chave para o armazenamento de informação é seu relacionamento
com as informações já armazenada (VOCKELL, 2011).
2.1.2 Fatores chave para o aprendizado
Quando se está desempenhando ou desenvolvendo qualquer processo ou atividade
que visa aprendizado, se sugere que se tenha em mente os fatores-chave que terão influencia
no aprendizado. Dentro os fatores que influenciam no aprendizado pode-se citar (FREEMAN,
et.al, 2010) (HUNT, 2008, p.58):
• emoções positivas – estudos mostram que sentimentos de “felicidade” são
essenciais para o aprendizado e pensamento criativo o fator emocional tem influência também
na capacidade de lembrar;
• novidade e quebras de paradigmas - chamam a atenção, enquanto coisas chatas e
rotineiras são filtradas;
• uso de imagens - aprender envolve muito mais do que texto em uma página,
imagens são mais fáceis de memorizar, segundo estudos de lembrança , apresentam um
aumento de 89% nos índices de memória;
• estilo conversacional e personalizado – estudos apontam um aumento de 40% de
desempenho em testes com aprendizado com estilo conversacional em primeira pessoa, se
comparação com estilo formal, o estilo conversacional força seu cérebro a gerar feedback,
como se fosse uma conversa, mesmo que seja com um livro, através da leitura ;
• surpresas – coisas fora do comum, interessantes, estranhas, impressionantes e
inesperadas auxiliam na memorização;
Outro fator importante facilitador do aprendizado, especialmente para o aprendizado
autônomo como reproduzindo por SINGHT, BARTO e CHENTANEZ (2004) em agentes
inteligentes, é a motivação intrínseca. Atividades guiadas por motivações intrínsecas são
aquelas que os indivíduos se engajaram sem a busca de recompensa, apenas por interesse e
25pelo prazer da realização destas atividades (VOCKELL, 2011).
MALLONE e LEPPER propõem modos de incentivar ao desenvolvimento da
motivação intrínseca (MALLONE, LEPPER apud VOCKELL, 2011):
• Desafio – pessoas são mais motivadas quando estão trabalhando em busca de
objetivo pessoalmente significante cuja realização requer uma atividade em um intermediário
nível de dificuldade;
• Curiosidade – a curiosidade é estimulada quando algo no ambiente atear atenção
ou quando se é refletido sobre a natureza ou função de algo;
• Fantasia – alunos usam imagens mentais de coisas e situações que não estão
presentes realmente para simular seu comportamento;
• Cooperação – alunos se sentem satisfeitos ajudando outros a atingir seus
objetivos;
• Competição – alunos se sentem satisfeitos comparando suas performances
favoráveis em relação a outros;
• Controle – pessoas tem a tendência de buscar controlar o que acontece a elas;
• Reconhecimento – alunos se sentem satisfeitos quando outros reconhecem e
apreciam suas realizações;
Em contraponto sobre o valor da motivação intrínseca no aprendizado, cabe alertar
que motivação extrínseca imposta, motivação guiada por fatores externos e punições não são
recomendadas como fonte motora de aprendizado. Visto que, segundo VOCKELL, o
conhecimento adquirido persistiria apenas enquanto o fator compelido se apresentasse
presente, uma vez eliminada as consequências artificiais o conhecimento perde seu propósito
e é esquecido (VOCKELL, 2011).
Em adição, consequências artificiais frequentemente reduzem o sentimento de
determinação do aluno, o que provavelmente reduz a motivação para o aprendizado no futuro
(VOCKELL, 2011). Cabe salientar também que consequências que se baseiam em
pressupostos futuros tem pouca eficácia, sendo que estas depende da produção de dopamina
(HOWE, et.al., 2013), produzida por atividades que incentivam a motivação intrínseca,
premeditação dos resultados e uso de mecanismos de substituição de recompensar por
recompensas próximas.
262.1.3 Neuroplasticidade
É possível para um indivíduo reescrever psicologicamente o seu cérebro, realocar
áreas do cérebro para desempenhar diferentes funções e dedicar mais neurônios e
interconexões para habilidades especificas (HUNT, 2008). O cérebro humano é plástico,
característica responsável pelo termo neuroplasticidade, o que significa que o mesmo pode se
adaptar conforme as atividades de cada indivíduo, resultando assim em uma capacidade de
aquisição de conhecimento e de aprendizado de habilidades ilimitadas (HUNT, 200).
De acordo com DWECK, (DWEC apud HUNT, 2008) estudantes que acreditam que
a inteligência não pode ser aumentada, impedem o aperfeiçoamento da mesma, de modo
semelhante, estudantes que acreditam na plasticidade do cérebro aumentam sua habilidade
facilmente. Assim se pode dizer que a confiança do aluno em suas habilidades afetam o seu
desempenho.
Competências e habilidade que são frequentemente usadas e constantemente
praticadas, tornando-se dominantes e ganhando capacidade, de forma semelhante, habilidades
e competências que não são usadas vão lentamente perdendo capacidade, esta que é
redistribuída para as atividades que vem sendo mais usadas. Esse processo é denominado
competição cortical (HUNT, 2008). Consciente disso, aconselha-se praticar as habilidades que
se deseja manter e as que se visa o aprendizado.
2.2 ASPECTOS TEÓRICOS
Cada estudante tem seu modo particular de aprendizado, historicamente educadores
tem definido três tipos de alunos (HUNT, 2008):
• visual – o aluno precisa ver o material, e se for o caso, o instrutor. Trabalha bem
com gráficos e figuras, sendo sensível também a linguagem corporal e expressões faciais;
• auditivo – necessitam ouvir o material. Aulas seminários, vídeos e podcasts
funcionam bem para esse tipo. Sendo sensitivos a tonalidade da voz, velocidade da fala e
outras nuncias em falas;
• cinestésico – o aluno aprende através do movimento ou do toque, necessitando
interagir com o material (HUNT, 2008, p.169), praticar.
27Apesar de serem chamados tipos de aprendizado, essas categorias poderiam ser
comparadas a atributos de uma ficha de um personagem de RPG (role-playing game), em que
o personagem tem diferentes extensões de perícia em cada atributo, no caso, estilo de
aprendizado. Ou seja, os indivíduos geralmente possuem perícia em todos os estilos de
aprendizado, entretanto, certos tipos podem ser dominantes. Sendo que, geralmente cada
atividade realizada pelo personagem exige uma perícia específica definida por um
determinado conjunto de atributos, no caso dos tipos de aprendizado, como relatado por
HUNT (2008), diferentes modos de aprendizagem podem ser apropriadas para diferentes
atividades.
Além dos tipos de alunos, há um fator dominante na elaboração de uma metodologia
de ensino, fator esse definido pela idade e maturidade dos alunos, o estágio de
desenvolvimento do aprendizado do aluno. KNOWLES nomeia alunos que chegam a um
estado elevado de maturidade em relação ao aprendizado como “alunos adultos”
(KNOWLES, 1972 apud HUNT, 2008), identificando características destes indivíduos e do
ambiente apropriado para os mesmos, entre estas:
• O aluno adulto fica motivado para aprender quando o aprendizado vai satisfazer
suas necessidades e interesses.
• Precisa de contextualização real
• A análise das experiências do aluno adulto são o centro do método empregado
• Os alunos adultos precisam ser autodirecionados, o instrutor deve ajudá-los a se
envolver em investigação mútua.
• O instrutor deve permitir diferenças de estilo, tempo, lugar e de ritmo.
Aproximadamente 70% do aprendizado dos alunos adultos é autodirigido (CROS,
apud AIR, 2012). Um aspecto fundamental para o aprendizado independente é a
metacognição, tópico discutido na próxima seção.
2.2.1 Metacognição
Metacognição refere-se a consciência do próprio processo de aprendizado, estar
ciente do que funciona e o que não, em suma, a habilidade de entender, controlar e manipular
o próprio processo cognitivo (MEICHENBAUM, 1985 apud AIR, 2012). O que inclui saber
quando, como e porque usar determinada estratégia de aprendizado ou resolução de problema
28(AIR, 2012). Por exemplo, um estudante pode determinar se ao aprender uma linguagem de
programação, a melhor abordagem para ele seria ler e escrever sobre a linguagem, criar um
projeto usando está linguagem ou assistir videoaulas.
Sugere-se, assim como na análise de um algoritmo (SHAKYA, 2008), que ao
elaborar os processos de aprendizado leve-se em conta a eficácia e o tempo requerido. Sugere-
se manter em mente o princípio fundamental Lean de eliminação de desperdício
(POPPENDIECK M., et.al., 2003), realizando revisões periódicas, refatorando processos
conforme necessário. Lean ou TPS (“Toyota Production System”) é uma abordagem para
manufaturação originária no Japão que se propagou para diversas áreas, incluindo
desenvolvimento de software (KNIBERG, 2011).
Um exemplo da aplicação do princípio de eliminação de desperdício, seria a leitura e
transcrição para um caderno de um livro de forma linear, que envolva a transcrição em um
caderno de partes chaves do livro, reduzindo o volume de conteúdo a ser transcrito e portanto
o tempo utilizado neste processo, diminuindo também o tempo de posteriores buscas do
conteúdo. Este processo, que passa a ser a transcrição de partes chave de um livro com
complementação deste conteúdo, tem melhoria com a ajuda de softwares com objetivos de
aumentar a efetividade, como o Evernote, o que permite além de posteriores edições, o uso de
ferramentas de busca atrelado.
2.3 ASPECTOS TÉCNICOS
Nessa seção serão abordados uma série de ferramentas e técnicas que podem auxiliar
no aprendizado, autodidata ou não. Sendo importante, destacar que as técnicas e tecnologias
citadas podem ter um grau de utilidade diferente, dependendo do tipo de conteúdo, tópico
estudado e do estilo de aprendizado.
2.3.1 Música
Uma variedade de estudos apontam pequenas melhorias em atividades relacionadas
com estudo quando este acompanhado com música, sendo esta clássica (sem lírico) e sons
ambientais (O'HARE, 2011)(SILOR, 2012)(TRINOR, 2009). O uso de música durante a
execução de atividades fornece também, principalmente se acompanhado de fones de ouvido,
29um isolamento de ruídos. SCHLITTMEIER e HELLBRÜCK (2008) aponta que como o uso
de música como plano de fundo em um volume baixo reduz os ruídos do ambiente
(SCHLITTMEIER, HELLBRÜCK, 2008), o que auxilia a manter o fluxo de concentração
continuo, que por consequência, evita o stress devido a interrupções (ANDREWS, 2009).
2.3.2 Leitura inteligente
Pode-se apontar que nem toda a obra precisa de uma leitura completa, seja pelo
objetivo da leitura não exigi-la ou pelo texto conter uma abundância de informações
irrelevantes ou já conhecidas, ou ainda por limitações de tempo ou prazos. Por esse motivo, é
relevante o uso de estratégias de leitura que permitam uma leitura rápida e seletiva.
As técnicas Skimming e Scanning são duas técnicas especificas para leitura rápida,
que permitem cobrir uma grande porção de material rapidamente. Skimming é um método de
leitura rápida onde os olhos se movem rapidamente com o propósito de obter somente a ideia
geral do texto e uma visão geral do conteúdo abordado. Por outro lado, Scanning explora
grande parte do material em busca da localização de um especifico fato ou peça de
informação (READING AND STUDY SKILLS LAB, 2014).
Quando essas técnicas usadas em conjunto com uma leitura objetiva, que segue um
objetivo específico, elas podem permitir um grande ganho de eficiência. No entanto, as
mesmas podem gerar uma perda de profundidade no tópico abordado. Por esse motivo,
sugere-se uma análise prévia do contexto e escopo da obra, para que assim se possa decidir
qual abordagem de leitura é a mais vantajosa.
2.3.3 Plano de Estudo
Um plano de estudo é um cronograma organizado criado pelo estudante para definir
o tempo de estudo e objetivos de aprendizado (HOWTOSTUDY.COM, 2014). O processo de
criação de um plano de estudo consiste da identificação das atividades atuais e de seus
respectivos horários e durações, seleção de janelas temporais e definição da atividade
proposta para este período e definição do objetivo das atividades alocadas
(HOWTOSTUDY.COM, 2014). Se sugere que o plano de estudo seja constantemente
refatorado usando de princípios metacognitivos, para melhor refletir as necessidades atuais e
30obter melhor conformidade com o estilo de aprendizado.
Ferramentas como gerenciadores de tarefas diárias, controladores de tempo como
cronômetros, técnica pomodoro e despertadores podem auxiliar no cumprimento das
atividades do plano de estudo. WIDJAYA sugere que a ferramenta de gerenciamento de
tarefas diárias HabitRPG [habitrpg.com] promoveria um ganho de performance na conclusão
de atividades, uma vez que essa faz uso de recursos de gamificação (WIDJAYA, 2013).
2.3.3.4 Tomando notas
Pesquisas mostram que os hábitos de tomar notas e de revisá-las tem um positivo
impacto no aprendizado de alunos (DEZURE, 2001). Promovendo melhor memorização
(BLIGH apud DEZURE, 2001), melhor capacidade de sintetização e recordação (KIEWRA,
et. al. apud DEZURE, 2001), melhor desempenho em avaliações (JOHNSTONE, SU apud
DEZURE, 2001). No entanto, quando notas são tomadas de maneira leviana, elas podem virar
cópias do material fornecido, sem a presença de qualquer esforço crítico ou cognitivo.
Podendo também se tornar um gargalo, impedindo o avanço da atividade de aprendizado.
Levando essa possibilidade em consideração, sugere-se tomar de notas de maneira inteligente
e eficiente através de estratégias de elaboração das anotações. Na Figura 1 é possível
identificar as estratégias mais comuns, entre elas estão (ASC, 2014):
• (a) Método Cornell – A página é dividida em três seções. A seção principal
localizada no canto superior direito contém as anotações do material abordado. A seção
esquerda contém notas sobre o conteúdo. Por fim a seção inferior contém um sumário do
conteúdo da página;
• (b) Método Outlining – A estrutura é composta de tópicos e subtópicos contendo
ítens sobre o material;
• (c) Método Charting – As anotações são representadas na forma de um gráfico;
• (d) Método Sentence – Composta de uma lista de sentenças enumeradas
• (e) Método Mapping – As notas são estruturadas na forma de mapas mentais
31
2.3.5 Inglês
A tecnologia da informação afetou a maneira como a sociedade se comunica,
interligando-a de uma forma global (CRUSE, PECK, 2011). Consequentemente gerando a
necessidade de uma língua comum ou língua global, papel que segundo BRITHIAUX vem
sendo desempenhado pela língua inglesa (BRITHIAUX, 2006 apud CRUSE, PECK, 2011).
A motivação, razão pelo qual estudar, é considerada um fator chave no índice de
sucesso no aprendizado de uma língua (DÖRNYE, 1998) (NOONAN, 2012). NOONAN
classifica a motivação em motivação instrumental na qual a linguagem é usada como meio
para atingir um objetivo final (NOONAN, 2012) e motivação integrativa quando se demostra
interesse pela cultura ou pessoas relativas a linguagem alvo (ELLIS apud NOONAN, 2012,
p.3-4).
As razões para estudar inglês podem ser de origem acadêmicas, profissionais ou
pessoais (ALVES, 2012). Os cursos da área de ciência da computação têm um forte vinculo
com o idioma, sendo seu estudo recomendado pela SBC (2003) e pelo MEC (2012).
As vantagens acadêmicas de estudar inglês vão da possibilidade de explorar a leitura
técnica (SBC, 2003), elaboração de publicações internacionais (MOTTA-ROTH, 2002) e
disponibilidade de um acervo bibliográfico mais amplo e atualizado. Vantagem esta última
maior tendo em vista a existência de pouca bibliografia em português que trate da temática
relacionada à área de tecnologia (CRUSE, PECK, 2011), e a sujeição da iniciativa de editoras
para a realização de traduções que o fazem com um grande atraso em relação ao original.
No âmbito profissional, como já citado, TI têm uma forte vinculo com a língua
inglesa, o que resulta, apesar dos altos indicies de empregabilidade, em uma exigência de
Figura 1: Estilos de notas baseando em (ASC, 2014)
32familiarização com o idioma (CRUSE, PECK, 2011). COSTA (2008) define um profissional
que não possua um bom nível de proficiência na língua inglesa, como um profissional
limitado, uma vez que o mesmo não teria condições de fazer uso da grande gama de recursos
existe na língua inglesa.
Segundo o questionário aplicado em profissionais de TI atuantes (APENDICE C)
94% dos profissionais que responderam o questionário afirmam possuir algum grau de perícia
em inglês. Este índice é de 100% no subgrupo de desenvolvedores de software.
Além de possibilitar um maior acesso à literatura e outras mídias, o estudo de uma
segunda língua possibilita a habilidade de se comunicar com um maior número de pessoas e
consequentemente se beneficiar mais de viagens a outros países (MARCOS, 2001). Para
MARCOS (2001) a introdução a novos meios de expressão e culturas permite uma melhor
compreensão da humanidade, devido ao fornecimento de novas perspectivas e pontos de vista.
Várias pesquisas sugerem benefícios mentais e cognitivos do aprendizado de uma
segunda língua. BAMFORD e MIZOKAWA sugere que estudantes de uma segunda
linguagem são mais criativos e melhores em resolver problemas complexos (BAMFORD,
MIZOKAWA, 1991 apud MARCOS, 2001), Estudos apontam que indivíduos que possuem
proficiência avançada em pelo menos dois idiomas possuem melhores índices de inteligência
verbal e não-verbal (BRUCK, LAMBERT, e TUCKER, 1974, HAKUTA,1986,
WEATHERFORD, 1986 apud MARCOS, 2001, p.3). BAMFORD e MIZOKAWA associam o
tempo de estudo de uma língua estrangeira com altos níveis de processamentos cognitivo e
metacognitivo (BAMFORD, MIZOKAWA, 1991 apud MARCOS, 2001, p.3).
A SBC define que o egresso de cursos de bacharelado e licenciatura da área de
ciência da computação deveria ter “Domínio da língua inglesa para leitura técnica na área;”
(SBC, 2003, p.7), no entanto essa sentença está incorreta. O “domínio” implicaria num alto
grau de proficiência da língua inglesa, segundo CRUSE e PECK aprender inglês com fluência
implicaria em aprender e desenvolver as quatro habilidades linguísticas (CRUSE, PECK,
2011, p.8) que segundo o American Council on the Teaching of Foreign Languages (ACTFL)
são escrita, leitura, fala e compreensão auditiva (ACTFL, 2012). Deste modo justificar o
“domínio” da língua apenas para leitura técnica seria incoerente, por essa razão se sugere que
a SBC reveja essa sentença para um melhor esclarecimento dessa competência esperada de
egressos.
Apesar das razões citadas, não é fundamental obter um nível intermediário ou
avançado de proficiência, o grau de especialização no idioma vai depender das ambições e
33objetivos de cada indivíduo. Se sugere que se possua pelo menos um grau mínimo de
proficiência em leitura para o uso de ferramentas computacionais e noções de leitura técnica
na área.
Obter fluência em inglês, como já mencionado, envolve o estudo de quatro
habilidades linguísticas, o desenvolvimento dessas habilidades pode leva vários anos.
Segundo COHEN, GRADDOL e HARMER em contexto adverso leva-se de 8 a 12 anos
(COHEN, GRADDOL, HARMER apud CRUSE, PECK, 2011), CRUSE e PECK (2011)
citam como contexto adverso o aprendizado de uma língua num país que tenha um idioma
oficial diferente do estudado, como estudar a língua inglesa no Brasil.
No APÊNDICE D é possível encontrar uma espanação sobre técnicas e metodologias
de aprendizado
2.3.6 MOOCs
MOOC (Massive Open Online Courses) são cursos online abertos que visam a
formação de uma população massiva de alunos (GAEBEL, 2013). São considerados abertos
porque não exigem qualquer tipo de requisito para participação e porque são gratuitos
(GAEBEL, 2013). Como os MOOCs estão aberto a todos, eles são um recurso de educação
global, em decorrência disso, visando atingir um grupo maior de pessoas eles são
disponibilizados em sua grande maioria no idioma inglês, o que incentiva ainda mais o estudo
da língua. O Brasil já conta com MOOCs nacionais providos pelo site Veduca
[www.veduca.com.br]. Dentre os provedores de MOOCs citados por GAEBEL
(2013)GAEBEL, 2013, p.4-6) pode-se enfatizar:
• edX [www.edx.org]
• Coursera [www.coursera.org]
• Udacity [www.udacity.com]
• FutureLearn [futurelearn.com]
2.3.7 Especificação de processos
Uma das bases da metacognição é a identificação dos processos de aprendizagem e
de sua melhoria. GRAY enfatiza a importância de standarts (normas) quando descreve, que
um estado de stress elevado pode produzir efeitos semelhantes a hipóxia, onde a pessoa não
34conseguem pensar bem e nem ao menos perceber esse déficit, implicando no
comprometimento das capacidades cognitivas e de julgamento. Atribuindo a necessidade de
standarts, ou até mesmo de listas, como forma de apoio a tomada de decisões e regularização
de qualidade da execução de tarefas de processos (GRAY, 1998).
Considerando essa necessidade de regularização apontada por GRAY e os princípios
da metacognição, sugere-se a elaboração de lista de processos, checklists, normas de
atividades e demais documentos que possam ajudar no processo de definição das
metodologias das atividades elaboradas sejam estas profissionais ou acadêmicas. Deste modo
espera-se fornecer um meio dinâmico de identificação e evolução de processos, bem como,
um recurso que auxilie na execução de atividades.
2.3.8 Prática
Conhecimento pode ser adquirido através da combinação de dados sensoriais com o
conhecimento existente para a criação de estruturas cognitivas, que são a base para posterior
construção. Podendo ser adquirido também através da criação a partir da reflexão sobe o
conhecimento existente (BEN-ARI, 1998, p.3-4).
Baseando-se na abordagem construtivista, criação para o aprendizado, é baseado no
princípio que conhecimento é criado a partir de experiência e cognição (HUNT, 2008, p.194),
o princípio de ganho de experiência através da aprendizagem sobre a aplicação levantado por
HUNT (HUNT, 2008) e o pressuposto explotado por CONFUCIUS “I HEAR AND I
FORGET, I SEE AND I REMEMBER, I DO AND I UNDERSTAND.”3 (CONFUCIUS apud
GENTRY, 1990) se sugere o aprendizado sobre demanda, e se esta não existir, a criação da
mesma.
Dos 68% dos profissionais de TI que afirmaram que a graduação não é o suficiente
no questionário (APENDICE C), os pontos que foram mais apontados como fracos foram
Conhecimentos Técnicos (programação, aplicações práticas,...) e Experiência prática, ambos
com 52%. Quando questionados sobre se estavam preparados quando entraram no mercado,
dos 32% dos que responderam que não estavam, 29% apontaram falta de conhecimentos
técnicos (programação, aplicações práticas,...) e 29% apontaram experiência prática.
No próximo capítulo serão abordados tópicos que auxiliaram no desenvolvimento e
participação de projetos, bem como tópicos sobre escrita e pesquisa científica.
3 “EU OUÇO E ESQUEÇO, EU VEJO E LEMBRO, EU FAÇO E ENTENDO.” - tradução nossa
353 PESQUISA
Um dos instintos mais fortes que os humanos possuem é o desejo de aprender sobre o
mundo em que vivem Sendo que, um dos objetivos da formação acadêmica é aprender como
aprende, como abordado no capítulo 2, dessa forma, possibilitando o aprendizado contínuo e a
absorvição de novos conhecimentos (BERNDTSSON, 2008).
O aprendizado contínuo é importante, principalmente para áreas que estão em
constante mudança, como a ciência da computação e sistemas de informação
(BERNDTSSON, 2008, p.13). Isto é também válido para um cientista, que como descrito por
ZIMAN (2003), têm que ser autodidata, porque este está na vanguarda da descoberta, na
fronteira do desconhecido.
O projeto político pedagógico do curso de ciência da computação da URI declama
"Produzir conhecimento. Essa é a missão primeira da Universidade." (URI, 2008, p.15),
mostrando assim os fortes vínculos das universidades com a realização de pesquisas e o
desenvolvimento científico. No entanto, para BERNDTSSON (2008) realizar pesquisa é o
processo de explorar o desconhecido, estudar e aprender novas coisas, construir novos
conhecimentos sobre coisas que ninguém conseguiu entender antes.
Desse modo, pesquisa não é um processo que é necessariamente subordinado a
universidades e outros centros de ensino, podendo assim ser realizado por outras organizações
e instituições fora do contexto acadêmico. E assim sendo até mesmo possível em uma escala
individual e independente.
No âmbito acadêmico, pesquisa é uma atividade sistemática e diligente de
investigação ou inquérito de uma área que objetiva a descoberta ou revisão de fatos,
hipóteses, aplicações, técnicas entre outras, resultando na descoberta ou construção de
conhecimento. Apesar de serem esperados, como resultados de pesquisa, contribuições
originais de conhecimento (BERNDTSSON, 2008), o que inclui tanto a construção de novo
conhecimento quanto a validação do conhecimento existente.
Em termos gerais, o propósito da pesquisa é descobrir respostas para perguntas
através da aplicação de procedimentos científicos (KOTHARI, 2004, p.2). Entretanto uma
pesquisa pode ter objetivos diversos, RAJASEKAR (2006) aponta os seguintes:
• Descobrir novos fatos;
• Verificar e testar novos fatos;
• Analisar um evento ou processo ou fenômeno para identificação das causas e efeitos
36relacionados;
• Desenvolver novas ferramentas científicas, conceitos e teorias para resolver e entender
problemas;
• Encontrar soluções para problemas sociais e do dia a dia;
Muitos pesquisadores de todas as categorias e gabaritos escrevem como se sua única
tarefa fosse responder a uma pergunta que os interessa. Isto porque encontrar o significado de
um problema é difícil até mesmo para pesquisadores experientes (WAYNE, 2003). No
entanto, a resposta encontrada deve resolver um problema ou saciar uma necessidade que
outros possam possuir.
Outro equívoco comum para pesquisadores iniciantes é pensar que possuir um tema é
o mesmo que possuir uma pesquisa. Ter um tópico para ler não é o mesmo que possuir um
problema para resolver (WAYNE, 2003, p.54). A pesquisa acadêmica é movida por
problemas, sem um problema um pesquisador não possui trabalho, pois com apenas um
tópico não é possível determinar o escopo do trabalho. Por outro lado, com um problema, é
possível obter foco especificamente para os dados vão auxiliar a resolvê-lo (WAYNE, 2003).
Segundo WAYNE (2003) problemas práticos são as um dos principais originadores
de pesquisas. WAYNE (2003) propõe um ciclo do relacionamento entre problemas práticos e
pesquisa que pode ser visto na Figura 2 “Relacionamento entre problemas práticos e
pesquisa” (adaptado WAYNE, 2003, p.53). Sendo problemas práticos causados por alguma
condição que causa infelicidade, desconforto, dor, perda de tempo, dinheiro ou até mesmo de
vidas. Estes podendo ser resolvidos a partir da realização de uma ação que promova a
resolução ou amenização do problema ou mesmo que motive ou auxilie a busca da solução
por outros (WAYNE, 2003).
37
Uma segunda importante fonte de pesquisa, segundo WAYNE (2003), seriam
problemas conceituais, que se originam de lacunas de conhecimento sobre o mundo. Sendo
estes solucionados não através da solução de um problema, mais sim da construção de
conhecimento para o preenchimento da lacuna.
3.1 MÉTODO CIENTIFICO
O método científico é um esquema lógico usado por cientistas para buscar por
resposta de forma científica (DODIG-CRNKOVIC, 2002), consistindo de sistemática
observação, classificação e interpretação de dados (KUMAR, 2011). O método científico é
empregado na produção de teorias e metateorias científicas, o que inclui as ferramentas para a
produção de teorias (DODIG-CRNKOVIC, 2002).
Os processos do método científico possuem diversas interpretações, NASA propõe o
Figura 2: Relacionamento entre problemas práticos e pesquisa (adaptado WAYNE, 2003, p.53)
38seguinte abordagem (NASA, 2008):
• Observação – cientistas observam apenas algo que eles não conhecem ou que
querem conhecer mais sobre, e então fazem uma questão sobre a sua obervação;
• Revisão de dados gerais - Cientistas buscam pesquisas sobre o tópico para
determinar se estão repetindo um experimento já realizado ou se estão construindo algo novo;
• Indicação do problema – Uma vez que o cientista têm uma ideia para a questão
da pesquisa que ele quer estudar, ele aponta o problema ou faz uma pergunta;
• Formação da hipótese – A hipótese é uma declaração do pesquisador sobre o que
ele acredita que o experimento resultará;
• Planejamento e execução do experimento – O cientista planeja e executa o
experimento a ser realizado num ambiente controlado com a identificação, análise e quando
possível, controle das variáveis e fenômenos atuantes no ambiente. De modo a produzir um
experimento que possa ser repetido, testado e avaliado por outros cientistas;
• Coleta e análise de dados – Os dados provenientes dos processos e os resultados
obtidos são analisados como um todo;
• Extração da conclusão – Após finalizar, a análise dos dados o cientista verifica se
os dados suportam sua hipótese;
Obviamente esta sequência de processos é comum para o emprego de várias
atividades, mesmo as mais mundanas do dia a dia. A principal diferença, segundo
LUNDBERG, é o grau de formalidade e rigorosidade empregados, somados ao índice de
verificabilidade e sua validade (LUNDBERG apud KUMAR, 2012).
3.2 MÉTODOS E METODOLOGIA DE PESQUISA
Métodos de pesquisa podem ser definidos como todos os métodos e técnicas
empregados no desenvolvimento de uma pesquisa (KOTHARI, 2004). Métodos de pesquisa
podem ser classificados pela sua natureza, pela forma como se relacionam com dados e pela
proporção e profundidade de suas atividades.
Metodologia de pesquisa, por outro lado, trata-se da maneira sistemática de resolver
o problema da pesquisa (KOTHARI, 2004). KOTHARI (2004) a define como a ciência de
estudar como a pesquisa é realizada cientificamente. Cabe salientar que embora a base lógica
39da metodologia seja a mesma em todos os campos, as técnicas científicas e abordagens variam
de acordo com a área e do assunto abordado (FESTINGER e KATZ apud KUMAR, 2011).
Um exemplo de metodologia de pesquisa, é a proposta por MAYER em “MAD: a
way to do science” onde é apresentada uma proposta de uma metodologia de alto nível (de
abstração) denominada MAD (Methodology of Anarchic Distinction) (MAYER, 2014),
(MAYER, 2014). Onde MAYER, além de uma proposta de metodologia, apresenta uma
proposta filosófica baseada na iniciativa open source para pesquisa, sugerindo um modelo
aberto de publicação independente dos moldes tradicionais (MAYER, 2014).
3.3 ESCRITA
Um dos grandes paradoxos na pesquisa é que, independente da área, a pequisa deve
ser escrita e publicada para ser considerada finalizada (LINDSAY, 2011, p.2). Quando os
resultados da pesquisa são organizados e reorganizados de novas formas, é possível descobrir
novas interações, conexões e complicações (WAYNE, 2003, p.13).
Existem outras formas de escrita além da escrita acadêmica. Sendo que estas podem
representar de forma mais leve, clara e simples dados, podendo muitas vezes atingir um
público maior. Desda forma deve-se considerar um dos principais fatores pertinentes ao
determinar o estilo de escrita, o objetivo da obra e a audiência visada (KENNEDY, 1993).
A escrita acadêmica é uma das formas de transmitir conhecimento para a
comunidade científica. Conhecimento esse que terá uma maior notoriedade por estar em um
padrão comum a comunidade científica, expressando assim um índice de formalidade maior
(WAYNE, 2003, p.13-14). No entanto, como apresentado por FREEMAN a escrita acadêmica
é ineficiente quando o objetivo é a instrução do leitor, sendo mais adequado um estilo mais
conversacional e informal (FREEMAN, et.al, 2010, p.XVIII).
404. PROJETOS DE DESENVOLVIMENTO DE SOFTWARE
Desenvolvimento de software open source vêm ganhando força como um dos
modelos de desenvolvimento mais eficazes (KAPUR, 2010). Modelo que segundo KAPUR
(2010), permite ao projeto atingir níveis de qualidade até então inimagináveis. Isto porque, o
código é exposto a uma comunidade de desenvolvedores que muitas vezes revisará o código,
fazendo correções, fornecendo feedback e adicionando código ao software
Softwares open source, Free Software, FLOSS (Free Libre Open Source Software) ou
Software Livre, podem ser definidos brevemente como softwares cujas licenças dão ao
usuário a liberdade de executar, estudar, modificar e distribuir o software de forma livre.
Neste último caso, distribuir o software sem o pagamento de qualquer valor atribuído a direito
autorais a antigos desenvolvedores (WHEELER apud REIJSWOUD, JAGER, 2008, p.28).
4.1 PARTICIPAÇÃO EM PROJETOS OPEN SOURCE
Projetos open source são frequentemente desenvolvidos por comunidades, um grupo
de pessoas que normalmente não possuem autoridade governamental ou suporte
organizacional (KAPUR, 2010). Podendo também, ser desenvolvidos também em escala solo
ou mesmo incubados em uma empresa ou organização governamental.
Community Driven Development, em termos gerais, é uma iniciativa em que um
grupo de profissionais de TI trabalham em conjunto com uma visão comum do software
produzido (KAPUR, 2010), através do compartilhamento de trabalho, experiências, ideias e
considerações em um lugar coletivo. Segundo KAPUR (2010), as comunidades de
desenvolvimento de software mais bem-sucedidas se organizam de forma semelhante a uma
organização profissional ou uma companhia de desenvolvimento de software, onde cada
membro do time tem um “cargo” e muitas vezes, formam equipes com membros com funções
semelhantes.
Cada projeto open source tem seu modelo organizacional próprio, uma rígida
hierarquia de pesamento onde diferentes pessoas de diferentes papeis e habilidades trabalham
em conjunto, geralmente através da Internet (KAPUR, 2010). Esta hierarquia pode ser
representada como ilustrado na Figura 2.
41
Os “cargos” mais comuns, citados por KAPUR (2010) seriam:
• Líder do projeto/ Desenvolvedor principal: Responsável por tomar decisões e
garantir a integridade do projeto. Podendo ser representado por um conjunto de
desenvolvedores;
• Desenvolvedor: Responsável por implementar funcionalidades e corrigir bugs;
• Escritor de documentação: Responsável por escrever a documentação e garantir
que o usuário possa instalar e usar com o auxilio desta;
• Tradutor: Responsável por traduzir a documentação em muitos casos o próprio
software;
• Designer: Responsável pelo design da interface do software, do site e pela arte;
• Relações Públicas: Responsáveis por atualizar a comunidade, divulgar o projeto e
servir de moderador dos canais de comunicação do projeto;
• Usuário ativo: Usuário que promove feedback e muitas vezes pode chegar a
modificar o software para atender as suas necessidades;
Os projetos open source possuem também seu próprio estilo de colaboração,
geralmente este estilo pode ser encontrado em páginas como "Get Involved!" ou em seções
para desenvolvedores.
Figura 3: Representação da hierarquia de um projeto open source (adaptada KAPUR, 2010, p.65)
424.1.1 GitHub
GitHub é uma plataforma social de desenvolvimento de software, fornece uma
solução de alto nível para hospedagem de projetos fazendo uso do sistema de controle de
versão distribuído Git (RUSSELL, 2013). GitHub é amplamente popular entre projetos de
software open source, possuindo recursos que facilitam a comunicação entre membros da
comunidade.
O paradigma de controle de versão distribuído é bastante apropriado para o conceito
de desenvolvimento de software social do GitHub (RUSSELL, 2013). Pois este, permite aos
desenvolvedores interessados em contribuir com o projeto, copiarem o repositório, “fork”,
permitindo assim, aos desenvolvedores, trabalhar imediatamente em uma cópia funcional do
projeto original. O que permite aos desenvolvedores trabalhar simultaneamente no projeto.
Mesmo que um desenvolvedor não queira participar diretamente do projeto, este
pode obter uma cópia do repositório do projeto de forma fácil e rápida e assim estudar o
código e se desejado, modificá-lo para atender as suas necessidades. O paradigma de controle
de versão distribuído permite também que este desenvolvedor mantenha sua versão do
repositório atualizada com o repositório original, desde que este faça alterações em sua versão
para manter a compatibilidade com a nova versão do repositório original.
4.2 CRIAÇÃO DE PROJETOS OPEN SOURCE
Uma boa maneira de começar um projeto de software open source é através da busca
da resolução de um problema particular (RAYMOND,1999). O interesse pessoal do
desenvolvedor em resolver o problema, resulta em um bom software (FOGEL, 2013). No
entanto, antes de realmente começar um projeto, é recomendado que seja realizada uma
busca, em procura de projetos existentes que já tenham resolvido o problema.
Dessa forma, mesmo que já exista um projeto que atenda, mesmo que parcialmente,
a demanda do problema, pode existir motivações que transcendam isto. Como fins
educacionais, atualização da tecnologia, aumento de interoperabilidade e redução de escopo.
Antes de iniciar o projeto é necessário definir o conceito de projeto, o escopo, as
limitações e definir um objetivo (FOGEL, 2013).
434.2.1 Definindo o nome
Um nome do projeto define muito sobre ele, embora um bom nome por si só não fará
o projeto bem-sucedido, um nome ruim poderá arruiná-lo, atrasando a adesão ao projeto por
falta de seriedade ou por não ser coalescente suficiente (FOGEL, 2013). Segundo FOGEL
(2013) um bom nome deve:
• Passar o conceito do projeto, ou mesmo estar relacionado com o conceito de modo que
ao ler o nome se possa entender sobre o que é o projeto;
• Ser fácil de lembrar, o que em projetos internacionais, incluiria ser fácil de lembrar
mesmo em inglês;
• Não ser semelhante ou idêntico ao nome de outro projeto e não infringir qualquer
marca registrada;
• Se possível estar com nome de domínio disponível;
4.2.2 Descrição do projeto
A descrição do projeto deve ser concreta, restrita e acima de tudo curta, deixando
clara a licença do software. Possuindo uma lista das funcionalidades de alto nível, das já
implementadas e das que serão futuramente. É importante também conter os requisitos de
funcionamento do software (FOGEL, 2013), o que incluiria bibliotecas, sistemas
operacionais e softwares assistenciais.
Visitantes frequentemente desejam saber se o projeto está sendo atualizado e que
novas funcionalidades serão implementadas (FOGEL, 2013), para isto é recomendado uma
seção apresentando um histórico das versões e das sprints incrementos sendo desenvolvidos.
Contando as datas de início, de fim ou previsão de término e funcionalidades implantadas.
É recomendável também que a página inicial do projeto tenha links importantes
como download dos binários e do código fonte, uma maneira fácil de fornecer feedback e
reportar bugs, principalmente se estas ainda não tiverem sido implementada no projeto.
Quando possível, é recomendado também expor os meios de comunicação.
444.2.3 Comunicação
Enquanto os membros do projeto precisam sentir-se conectados ao projeto e que
possuem uma influência proporcional a sua colaboração, os visitantes normalmente anseiam
interagir com os seres humanos envolvidos no projeto. Para isto é necessário estabelecer
canais de comunicação públicos e interpessoais, FOGEL cita algumas das ferramentas de
gerenciamento de informação mais comuns para projetos open source (FOGEL, 2013):
• Site Web – um canal centralizado para transmitir informações do projeto para o
público.
• Controle de Versão – Permite aos desenvolvedores gerenciar as mudanças no
código fonte, permitindo a todos os desenvolvedores estarem conscientes do que está
acontecendo.
• Lista de e-mails / fórum de mensagem – Geralmente são os canais de
comunicação mais ativo, usado normalmente por membros da comunidade.
• Chat – Permite a comunicação em tempo real, permitindo a resposta rápida a
perguntas e dúvidas.
455 DESENVOLVIMENTO DE SOFTWARE
Em ordem de participar de projetos, bem como para se manter contratável é
importante estar consciente do atual estado da arte do desenvolvimento de software. Da
mesma forma é importante se manter atualizado para se manter contratável (LESTER, 2009).
Nesta seção são abordados algumas das principais technological trend (tendências
tecnologias) de desenvolvimento de software, selecionadas com base nos relatórios “8th
Annual State of Agile Survey” (VERSION ONE, 2013) e “Technology Radar”
(THOUGHTWORKS, 2014).
Para elucidar a aplicação destas tecnologias serão fornecidos exemplos práticos da
aplicação de algumas destas em projetos de desenvolvimento de software. A descrição dos
projetos e de sua natureza pode ser encontrada no APÉNDICE A.
5.1 POLYGLOT PROGRAMMING
Polyglot programming (programação poliglota) significa desenvolver aplicações
usando uma ou mais linguagens de propósito especifico em conjunto com uma linguagem de
propósito geral (FORD, 2008). Paradigma que já é amplamente aplicado, por exemplo, em
aplicações web que utilizam javascript para client-side scripting, php para server-side e SQL
para persistência.
Java não é apenas uma linguagem de programação, é uma plataforma capaz de ser
executada sobre uma variedade de sistemas operacionais e hardwares (FORD, 2008). A
plataforma Java suporta um grande número de linguagens, algumas destas próprias para
tarefas especificas (FORD, 2008). Java é uma das linguagens pilares para polyglot
programming, possuindo integração com uma série de linguagens.
O projeto COVA 2 é um exemplo de uso mais aprofundado de polyglot
programming. COVA 2 usa a linguagem objeto-funcional Scala para a realização de
concorrência nos processos de persistência da base de dados ad-hoc formada por arquivos
JSON. Ele está publicado no github e mais detalhes estão no Apendice A.
465.2 FUNCTIONAL PROGRAMMING
Functional programming é usada entre outras coisas para desenvolver software com
concorrência ou para gerenciar Big Data (WAMPLER, 2011). É possível usar functional
programming com o paradigma polyglot programming para desfrutar das vantagens do
modelo de concorrência e modularidade oferecidos pela functional programming,
especialmente em programas desenvolvidos em linguagens de propósito geral, como Java por
exemplo.
5.3 POLYGLOT PERSISTENCE
Polyglot persistence é uma forma de persistência baseada em polyglot programming
de Neal Ford onde são usados diferentes paradigmas de persistência de dados em um mesmo
programa (SADALAGE, FOWLER, 2012). O objetivo da polyglot persistence é desfrutar
das vantagens de diferentes paradigmas de persistência, fazendo uso de uma combinação de
paradigma com entidade de dados.
Enquanto base de dados relacionais são de difícil expansão e escalabilidade
(VAISHI, 2013), modelos de persistência shemaless como os propostos por NoSQL podem
ser estendidas mais facilmente. No caso de SAlmox, foi usada uma base de dados para
persistir a maioria dos dados do sistema (todos os dados, exceto preferências e configurações),
dificultando operações de atualização. Uma vez que normalmente as mudanças efetuadas no
schema resultariam na confecção de scrips ou código fonte para fazer a migração do schema.
Este processo pode ser facilitado com a utilização de frameworks como Flyway
(THOUGHTWORKS, 2014).
No caso do COVA 2 que prezava por portabilidade e versatilidade, foi explorado o
paradigma de polyglot persistence de forma que foi criado uma base de dados relacional com
o objetivo de indexar as series de animação e então criada uma base de dados ad-hoc com
arquivos JSON. Assim aumentando a manutenibilidade da persistência de dados, uma vez que
os índices armazenados na base relacional dificilmente seriam atualizados. Enquanto os dados
com possível alta frequência de atualização foram armazenados em arquivos JSON.
Permitindo explorar a secabilidade vertical do modelo relacional nos índices e usando-os
como ponto de centralização para a persistência no software.
47
5.4 NOSQL
NoSQL é uma abrangente classe de sistemas de gerenciamento de banco de dados,
reconhecidos pela sua diferenciação do modelo relacional de banco de dados (VAISHI, 2013).
O NoSQL possui um conjunto diverso de padrões arquitetônicos de armazenamento de dados
(MCCREARY, KELLY, 2013):
• Key-value – Uma forma simples de associar grandes arquivos de dados com um
valor de texto chave;
• Graph - Armazenamento na forma de nos e arcos de um grafo;
• Column family – Uma forma de armazenar dados de matriz esparsa usando uma
linha e uma coluna como chave;
• Document – Uma forma de armazenar informação hierarquizada estrutura na
forma de árvores numa única unidade;
NoSQL fornece schemas com alta flexibilidade, no entanto não oferecem suporte a
relacionamentos e chaves estrangeiras, tendo como opção a combinação da simplificação de
consultas, armazenamento de dados em cache e a realização de operações complexas na
camada de aplicação (VAISHI, 2013).
5.5 VERSION CONTROL
Um sistema de controle de versão é um sistema capaz de armazenar alterações feitas
em um arquivo ou a um conjunto de arquivos dentro de um período de tempo na forma de
versões. Permitindo que seja possível retornar ao estado original de uma versão especifica
(SOMASUNDARAM, 2013).
Como abordado na seção de projetos, o uso de versão de controle, especialmente Git,
possibilitou a criação de um novo paradigma de desenvolvimento de software, social coding
(THUNG, 2013), o que influenciou principalmente projetos open source. Version control
possibilitou também Continuous Integration (SMART, 2011).
485.6 TDD
Test-driven development (TDD) é uma técnica de desenvolvimento e de design que
auxilia o desenvolvimento de software funcional desde a fase inicial (KOSKELA, 2007).
Adicionando funcionalidades e comportamentos em pequenos incrementos através do
desenvolvimento e refatoração de testes. Segundo pesquisa realizada por VERSION ONE
(2013), 38% das empresas pesquisadas utilizam TDD como técnica ágil.
TDD poder ser resumido como “Apenas escreva código para consertar um teste
falho”4 (KOSKELA, 2007). Desta forma, o modelo de codificação do TDD, demostrado na
Figura 4, se baseia no desenvolvimento de testes, no desenvolvimento de código fonte para
passar nestes testes e na posterior refatoração destes. O design arquitetônico do TDD é
evolutivo, pequenos incrementos de decisões sobre o design são feitos durante o
desenvolvimento de testes, e evoluídos a partir de refatorações.
O COVA 2 está sendo desenvolvido usando a técnica TDD, durante o processo de
desenvolvimento foi possível notar que TDD além de aumentar a confiança no código
desenvolvido, transfere as decisões sobre design para microdecisões realizadas durante a
elaboração e refatoração dos testes unitários. No entanto, em Java, o teste unitário em GUIs
(graphical user interface), a camada de views, neste caso, tem certas complicações, como
testar se as ações dos usuários são capturadas e se estas são passadas se comunicam com
eventos de forma adequada e testar se os componentes mostram e se comportam como e o que
supostamente deveriam. Para estes casos á a possibilidade de usar frameworks específicos,
como apontado por (KOSKELA, 2007, p.290). No caso do COVA 2 optou-se por transferir
esta responsabilidade para os testes de User Acceptance.
4 “Only ever write code to fix a failing test.”
Figura 4: Ciclo de TDD adaptado de (KOSKELA, 2007, p.16)
495.7 CONTINUOUS INTEGRATION
Continuous Integration, de forma simples, envolve o monitoramento de um sistema
de controle de versão, que quando detecta mudanças automaticamente compila e testa a
aplicação (SMART, 2011,). De uma forma mas ampla, Continuous Integration, é uma técnica
de desenvolvimento de software que permite que um time integre seu trabalho frequentemente
(FLOWER, 2006).
Continuous Integration mudou a forma de como uma equipe de desenvolvedores
trabalha, permitindo que estes trabalhem de forma integrada, através da frequente integração
do código (FLOWER, 2006). Numa escala solo, CI é útil se a ferramenta de CI utilizada rodar
os testes unitários e testes de aceitação automáticos antes de realizar commit, no entanto se o
desenvolvedor já tiver este hábito ela se torna dispensável.
5.8 CONTINUOUS DELIVERY
Continuos Delivery pode ser definida como uma metodologia de desenvolvimento de
software, voltada a forma como o software é entregue e os requisitos para isto. Continuos
Delivery busca a entrega de software funcionando de forma breve e continua (HUMBLE,
FARLEY, 2010), muitas vezes tendo várias versões do software lançadas por dia.
No entanto para manter este ritmo de lançamento de software é necessário um grau
elevado de automatização tanto para testes quanto para o processo de implantação. Para isto,
Continuos Delivery se baseia em um pipeline de entrega. Toda mudança que é feita na
configuração da aplicação, código fonte, ambiente e dados, aciona a criação de uma nova
instância do pipeline de entrega (HUMBLE, FARLEY, 2010, p.4).
Os primeiros estágios do pipeline envolvem a criação de binários, e se for o caso,
instaladores, que serão testados durante o resto do processo para que possam ser lançados
como versões do software (HUMBLE, FARLEY, 2010). Para a realização dos testes é
essencial que o projeto use TDD (HUMBLE, FARLEY, 2010).
No questionário realizado em profissionais atuantes no mercado de TI (APENICE C)
39% dos profissionais afirmam que suas organizações usam ou estão no caminho da
implementação de Continuous Delivery, quando comparamos este índice ao índice coletado
nos Estados Unidos e Reino Unido de 65% (PERFORMANCE, 2014) é possível notar uma
diferença considerável na adoção da tecnologia. Do restante da amostra, 55% não usam
50Continuous Delivery e 6% desconheciam o conceito.
Continuous Delivery é uma técnica que permite a entrega de valor para o usuário
cedo e de forma frequente, mas para isto ela necessita da aplicação de certas técnicas, o uso de
frameworks e ferramentas, o que pode se tornar um obstáculo para o aprendizado desta
técnica, devido sua curva de aprendizado larga. Em COVA 2, por se tratar de uma aplicação
desktop, foi necessário desenvolver um sistema para realizar atualizações automáticas. Como
COVA 2 prioriza portabilidade e versatilidade, só é necessário que o JSE seja instalado sem a
necessidade de instalação de SGBDs ou demais dependências, o que facilita a atualização, já
que não é necessário a atualização de softwares externos, além do JSE.
5.9 BDD
BDD (Behaviour-Driven Development) foi construído sobre os conceitos de TDD,
através da formalização de boas práticas usadas juntamente com o TDD (WYNNE,
HELLESØY, 2012). No BDD são escritos testes de aceitação (acceptance test), testes que são
compreensíveis pelo time todo (WYNNE, HELLESØY, 2012). Para isto BDD se baseia numa
linguagem simples baseada em cenários, condições e consequências, para a escrita dos
acceptance tests.
5.10 SAAS
SaaS (Software as a Service) é um modelo onde software e dados são oferecidos aos
usuários/clientes na forma de um serviço através da Internet (FOX, PATTERSON, 2012).
SaaS é atrativo para tanto os usuários/clientes quanto para os provedores, o cliente universal
(navegador web) torna o serviço fácil de usar (FOX, PATTERSON, 2012), enquanto para o
provedor reduz as instâncias do produto, centralizando-o numa única versão do software, e
deste modo facilita atualização e suporte.
No questionário (APENDICE C) foi perguntado aos profissionais de TI se eles
estavam familiarizados com o conceito SaaS 87% afirmaram estar. Apesar de SaaS “livrar” o
usuário de maior parte da responsabilidade pela infraestrutura e permitir operações como
manutenções e atualizações de forma transparente através de centralização, o usuário se
submete e submete seus dados ao provedor de serviço, delegando a responsabilidade por
manter o software disponível. No entanto ao terceirizar esse serviço uma companhia aliena-se
51em relação a privacidade e ao controle sobre seus dados.
5.11 PREPROCESSADORES CSS
SASS (Syntactically Awesome Style Sheets) e LESS (Leaner CSS) são exemplos de
preprocessadores CSS. O princípio básico por trás de preprocessadores é que estes são uma
linguagem que compila em um nível abaixo do CSS, desta forma buscando a redução do
volume de código produzido (FIELDING, 2014).
A ideia por trás de processadores CSS é reduzir o volume de código e torná-lo mais
fácil de ser produzido, através da escrita de conjuntos de classes CSS padrão e alguma
informação com elas (CHOWDHARY, 2011). THOUGHTWORKS acredita que CSS escrito
a mão estejam chegando ao seu fim, com o advento de preprocessadores CSS como LESS e
SASS, devido a sua qualidade e suporte (THOUGHTWORKS, 2014).
526 MERCADO DE TRABALHO E CARREIRA
O mercado interno de software e serviço brasileiro se encontra em 8º lugar no rank
mundial em 2013 (ABES, 2013). No entanto estimativa produzida pela SOFTEX (Associação
Para Promoção Da Excelência Do Software Brasileiro) aponta que o mercado enfrentará em
2022 um deficit de 408 mil profissionais (SOFTEX, 2013). Para preencher esta demanda, é
necessário além de um maior número profissionais, como apontado por ADDUCI (2013),
também uma melhoria da qualificação dos profissionais de TI.
6.1 CARGOS
Cargos do setor de desenvolvimento de software podem variar dependendo da
empresa devido a sua cultura, política, setor especifico e ou tamanho. No entanto os cargos
podem ser genericamente alocados nos seguintes papéis (CARTER, 2011):
• Programador – Programadores usualmente estão relacionados com a
programação. No entanto eles possuem também uma significativa parcela de funções não-
programáticas como reuniões, correções de bugs, testes, documentação e outras atividades.
Dependendo da empresa e das condições, programadores podem exercer também outras
atividades relacionadas ao desenvolvimento de software. Um programador que se importa e
participa de grande parte, ou todo, do processo de desenvolvimento do software é
denominado desenvolvedor.
• Líder de Técnico (Tech Leads) – Um líder técnico é um programador com
permissão oficial para coordenar assuntos técnicos. Um time de programadores
frequentemente vai conter um líder técnico, sendo que este por vezes possui conhecimento
sobre o domínio do problema ou um histórico de boa liderança.
• Arquitetos – O arquiteto pode ser considerado um analista consultor que coleta
os requerimentos e desenvolve o design para implementação ou pode ser um líder de time,
participando ativamente do desenvolvimento do software. Novamente, o papel do arquiteto
vai variar de acordo com a empresa.
• Gerentes – Gerentes são responsáveis pelo gerenciamento pessoal, o que inclui
entre outras atividades, contratações, demissões e avaliações de perfo. Gerentes se originam
geralmente de “gerentes administrativos” que possuem formação em uma área humana ou
53administrativa e gerentes que costumavam ser programadores.
• Testadores (Testers) – Testadores são responsáveis pelos testes do software. A
gama e natureza dos testes efetuados por testadores depende do produto e das tecnologias
empregadas.
• Build/Deployment - Grandes corporações de desenvolvimento de software
necessitam de especialistas em controle de versão, ferramentas de automatização, ferramentas
de empacotamento e processos de lançamento de software.
• Especialistas - Especialistas são profissionais que possuem um alto nível de
maestria em um determinado domínio, como banco de dados, redes de computadores, web,
interface de usuário, processamento de dados. A necessidade de um especialista, assim como
a de Build/Deployment, vai depender do setor da empresa, de seus produtos e de sua política.
Os cargos são organizados também por hierarquia e experiência. Sendo uma das
principais diferenças entre papéis e níveis hierárquicos, além da experiência e grau de
maestria, a perícia em habilidades de gerenciamento de pessoas e competências profissionais
(soft skills) (PEGGY, 2007).
6.2 PROFISSIONALIZAÇÃO
Um profissional do setor de desenvolvimento de software precisa possuir habilidades
técnicas (hard skill) e competências profissionais (soft skill). Hard skills no setor de
desenvolvimento de software incorporam conhecimentos e perícias associadas a tecnologias,
linguagens de programação, paradigmas de programação, plataformas, técnicas,
metodologias, entre outras. No capítulo 5 foram abordas algumas trends tecnológicas que são
estimadas como hard skills, embora estas ainda possam variar de acordo com a especialização
do setor de desenvolvimento de software.
Competências profissionais são tão importantes quanto habilidades técnicas
(MATTURRO, 2013). Pessoas em um projeto de software têm que trabalhar em conjunto, em
prol da conclusão de um objetivo, para isto são necessárias habilidades para interagir e se
comunicar com colegas e envolvidos no projeto (MATTURRO, 2013). Sendo outras
habilidades como gerenciamento de tempo, capacidade de resolver problemas, tomar decisões
entre outras, são importantes para o desempenho das atividades.
546.2.1 Soft Skills
Competências profissionais, soft skills ou habilidades não-técnicas são exemplos de
um vasto conjunto composto de elementos como posturas, habilidades e práticas que são
combinadas para melhorar a eficiência no trabalho (RAMESH, et. al , 2010). Muitas das soft
skills são comuns à profissionais de diversas áreas.
Durante esta seção serão brevemente abordadas algumas soft skills. Para fins
organizacionais, estas ainda serão divididas em três categorias, sendo estas:
• Soft Skills Cognitivas – Se refere a habilidades de cunho intelectual e cognitivo e
o que inclui a postura sobre problemas e sobre aprendizado.
◦ Aprender e lidar com erros – Aprender com os erros pode significar possuir a
habilidade de identificar um erro e suas causas, e deste modo tomar medidas para que o
mesmo não se repita ou para diminuir sua incidência. O que incluiria documentação e
aprimoramento de processos. Entretanto, ao se deparar com um erro, desculpas não possuem
valor. Como apontado por HUNT e THOMAS (2010), o que é realmente importante são as
medidas tomadas para resolver erro, forneça opções não desculpas.
◦ Autodidatismo – Ser autodidata não significa rejeitar qualquer tipo de instrução ou
treinamento formal, mas sim ter a capacidade de aprender sem um. Segundo ZIMAN (2003)
cientistas devem ser autodidatas, porque cientistas trabalham na fronteira do desconhecido, e
portanto necessitam de conhecimentos que não são fornecidos por qualquer meio formal. O
mesmo se aplica a profissionais no setor de desenvolvimento de software, que têm que estar
no limiar da inovação, tendo assim que fazer do aprendizado um hábito (HUNT, THOMAS,
2000).
◦ Resolução de problemas e pensamento crítico – Resolução de problemas e
pensamento crítico se referem a habilidades de usar conhecimento, fatos e dados para resolver
um problema (ODEP, 2010). Pensar criticamente, também significa a eliminação de dogmas e
vibes em visualização profunda que considerando o contexto e sua influencia, com quebra de
tabus.
◦ Profissionalismo – Significa conduzir si mesmo com responsabilidade,
integridade, prestação de contas e excelência (ODEP, 2010). Sendo uma combinação de
qualidades como pontualidade, responsabilidade pelo próprio comportamento, honestidade,
integridade e responsabilidade pelo próprio comportamento.
◦ Autonomia - Não significa apenas a habilidade de poder executar uma atividade
55sem assistência direta, ela abrange também a capacidade de melhorar seu trabalho,
identificando e corrigindo falhas e erros, preencher lacunas e avaliar e melhorar o próprio
trabalho (HUNT, 2000).
• Soft Skills Interpessoais – Relacionadas ao relacionamento entre pessoas, a
comunicação e a postura ao tratar com pessoas.
◦ Comunicação – São através das habilidades de comunicação que informações são
transmitidas e recebidas, o que inclui ideias e opiniões, afinal como posto por HUNT, não há
sentido em ter boas ideias se estas não forem expressas de forma apropriada. Cada local de
trabalho, ou mesmo em ambientes online, possui um especifico estilo de comunicação, que
afeta a comunicação e a forma como ela é realizada. Embora a comunicação possa por vezes
ser limitada por questões geográficas ou políticas, ela pode ser realizada de diferentes formas
(ODEP, 2010):
▪ verbal – sons, linguagem e tom de voz.
▪ auditiva - escutando e ouvindo.
▪ não-verbal – expressão facial, linguagem corporal e postura.
▪ escrita – jornais, e-mail, blogs e mensagens de texto.
◦ Trabalho em equipe – A habilidade de trabalhar como um membro de um time, de
não apenas construir suas próprias ideias, mas também de contribuir com a construção de
ideias alheias envolve (ODEP, 2010):
▪ Trabalhar cooperativamente
▪ Contribuir com o grupo com ideias, sugestões e esforço
▪ Comunicação (recebimento e transmissão)
▪ Senso de responsabilidade grupal
▪ Respeito saudável a diferentes culturas, opiniões e preferências pessoais
▪ Habilidade de participação em domada de decisões e grupo
◦ Aprendiz-mentor – trabalhar em equipe é uma grande oportunidade para
aprendizado, além do compartilhamento de pontos de vista e perspectivas ao explicar algo é
possível atingir um novo grau de esclarecimento sobre o tópico (SUBRAMANIAM, HUNT,
2006). Um indivíduo que se engajar com outros, motiva seus colegas a melhorar e assim
melhora a competência geral do grupo (SUBRAMANIAM, HUNT, 2006), promovendo um
ambiente cooperativo de compartilhamento do conhecimento, importante em uma área
extensa e de grande inovação como TI. Este ambiente, somando a necessidade de aprendizado
56constante dos profissionais do setor, cria um papel de aprendiz-mentor, onde o conhecimento
é construído de forma descentralizada.
• Soft Skills de Autogerenciamento – Engloba habilidades de gerenciamento
pessoal.
◦Gerenciamento de stress – Gerenciamento de stress inclui a capacidade de
identificar sintomas biológicos, como dor de cabeça ou tenção muscular , e psicológicos do
stress, como irritabilidade, aumento de ansiedade e perda de interesse por hobbies (CARTER,
2011), e a habilidade de reduzir os níveis de stress de modo que este não interfira no
desempenho de atividade ou torne comunicação interpessoal ríspida.
◦ Gerenciamento de tempo – Gerenciar tempo de trabalho é uma importante
competências, principalmente para o setor de desenvolvimento de software que trabalha com
rígidas timelines. Técnicas como pomodoro, GTD e rastreamento de tempo podem auxiliar
tanto na concepção de estimativas quanto numa maior eficiência.
◦ Gerenciamento de portfólio de projetos – Trabalhar em vários projetos por vez não
aumenta a eficiência, de fato, a compromete (ROTHMAN, 2007). Profissionais devem saber
seus limites e o preço pago por multitasking. O uso de Kanban e/ou de gráficos de Gantt,
quando acompanhados de uma consciência dos limites pessoais ou da empresa, podem der
ferramentas úteis para o gerenciamento de porrifólio de projeto.
6.3 JOB HUNT
Job hunt é um termo que se refere a busca por emprego. Nesta seção, será abordado
o processo de busca de emprego de forma genérica a partir de uma junção dos processos
apresentados por LESTER (2009), por MCCULLER (2012) e por ATWOOD (2004). No
entanto, cabe salientar que o processo pode divergir por empresa. O processo tratará desde a
seleção de fatores à possível contratação.
6.3.1 Definição de Parâmetros
Antes de qualquer busca por empresas ou submissão de resumo é necessário definir
certos parâmetros. Estes parâmetros representam as limitações e que é desejado de um
emprego (LESTER, 2008). LESTER (2008) interpreta estes parâmetros como uma ferramenta
contra o risco de escolher um emprego que pode, posteriormente, se mostrar insatisfatório.
57O processo de definição de parâmetros começa com a seleção de fatores que o
candidato acredita que sejam importantes, características que o motivem (LESTER, 2008) e
limitações. LESTER (2008) propõe uma série de fatores comuns que podem auxiliar no
processo de decisão da carreira:
• Pagamento – Em diferentes estágios da carreira pagamento pode ter diferentes graus
de importância. Muitas vezes profissionais, geralmente jovens profissionais, elevam
muito seu pagamento, de forma que eles podem neglicenciar grandes oportunidades.
• Seguro – Seguro têm um diferente grau de prioridade em diferentes períodos da vida
(LESTER, 2008). Para profissionais jovem consideravelmente saudável, um seguro
pode não possuir grande importância, mas para um profissional com família este pode
ser um fator crítico.
• Treinamento – A habilidade de um profissional manter-se atualizado em
competências-chave aumenta muito seu valor geral e oferece oportunidades contínuas
para o avanço profissional (LESTER, 2008). Apesar de esperar-se que um profissional
consiga se manter atualizado e melhorar por si mesmo, companhias que forneçam
treinamento, seminários e estejam abertas a formas colaborativas de treinamentos
demostram que se importam em estar atualizadas e estão dispostas a melhorar.
• Viajem diária – O período de tráfego entre casa e local de trabalho, quando extenso,
pode afetar consideravelmente a qualidade de vida (LESTER, 2008). Possíveis
soluções para este problema seriam o alugar de uma residência próxima ao local de
trabalho, horários flexíveis e/ou transporte público eficiente.
• Condições de trabalho (cultura, pessoas, ambiente, horas) – Vários fatores compõem
as condições de trabalho. As pessoas com quem se trabalha e a cultura da empresa têm
papel fundamental na satisfação e apreciação de um emprego (LESTER, 2008). O
ambiente físico também é um fator que afeta a qualidade de condições de trabalho
(LESTER, 2008), podendo representar o cuidado da companhia pelos seus
empregados.
• Potencial de crescimento futuros – A possibilidade de trabalhar em projetos diversos
com tecnologias inovadoras e excitantes ou a conformidade de um papel bem definido
e constante, é um fator a ser considerado. Um profissional que trabalha em um escopo
limitado com tecnologias limitadas, pode se sentir frustrado, o que pode acarretar em
tédio e a Síndrome de Esgotamento Profissional.
58Após a seleção dos parâmetros pertinentes a um emprego, é realizada uma ordenação
destes parâmetros. Para fins de gastos temporais é recomendado o estabelecimento de um
limite de fatores, recomenda-se uma proporção entre 5 e 10 parâmetros. Então é realizado a
avaliação dos parâmetros em uma escala de prioridade entre 0 e 10.
6.3.2 Escolha de companhias
Este processo se baseia em duas fases. A primeira é a pesquisa de companhias da
área dentro das localidades desejada, ou que trabalhem de forma remota se este for o
desejado. Nesta fase há apenas a listagem das companhias, sem desqualificação. Meios de
buscar estas empresas seriam, entre outros, sites de emprego, redes sociais orientadas a
negócios (como LinkedIn) e ranks como “melhores empresas para trabalhar”.
A segunda fase se trata de uma pesquisa e avaliação crítica das empresas fazendo uso
dos parâmetros definidos na seção anterior. O critério de avaliação desta fase pode ser
diferente de acordo com a natureza dos parâmetros da área e das empresas, entretanto
recomenda-se totalizar a soma entre o produto da nota da empresa e o grau de prioridade do
parâmetro (nota parâmetro x prioridade parâmetro).
6.3.3 Pesquisa aprofundada
Após a classificação das companhias, é realizada uma busca profunda por
requerimentos das vagas desejadas, históricos de reputação, cultura, em suma detalhes sobre a
empresa, sua área de atuação e seus funcionários. O objetivo desta busca é obter informações
aprofundados sobre a empresa, sua cultura e o perfil de profissionais buscados, bem como o
de seleção destes profissionais.
Sites como Glassdoor.com e similares refletem e demostram a reputação de empresas
(MCCULLER, 2012, p.33), através de reviews de profissionais que estiveram em contato com
a empresa, como empregados, entrevistados, consultores, entre outros. Geralmente é possível
encontrar depoimentos de profissionais destas empresas em vídeos, comerciais da própria
empresa e posts de blogs.
6.3.4 Preparação
59A preparação inclui a atualização do portfólio de conhecimentos e competências, o
que inclui também a atualização de perfis profissionais disponíveis na Internet, como
LinkedIn e portfólios profissionais por exemplo. Nesta fase também é realizada uma busca
sobre as vagas disponíveis pela empresa selecionada e os requisitos das vagas escolhidas. No
entanto cabe citar que mesmo que uma empresa não possua nenhuma vaga aberta, não
significa necessariamente que não é possível se candidatar a um emprego.
6.3.4 Résumé
Résumé pode ser compreendido como um resumo do currículo, onde são expressas
informações profissionais de forma resumida. Segundo MORAN, résumés servem como
embaixadores para o mundo profissional, representando positivamente e com precisão as
habilidades profissionais para o mundo (MORAN, 2004).
O propósito ao ler um résumé é obter a resposta para a questão “Este candidato pode
fazer o trabalho? ” (MCCULLER, 2012, p.81). Entretanto, não há informação suficiente no
résume para responder a está pergunta, deste modo deve-se usar uma pergunta substituta
como “Há 50% ou mais de chance de que este candidato passe numa phone screen5?”
(MCCULLER, 2012, p.81).
Um résumé deve preferencialmente ser escrito para uma vaga especifica, que deve
ter sido escolhida e analisada na etapa anterior. Este deve funcionar em dois níveis diferentes,
1- deve ser claro o suficiente para quem estiver o lendo e analisá-lo encontrando o que
procura para 2- decidir colocá-lo na pilha do “Talvez” (LESTER, 2009, p.51).
Não há uma forma certa para a estrutura de um résumé. LESTER (2009) propõe que
um résumé deve conter no mínimo:
• Seção para contato
• Sumário profissional
• Experiência de trabalho
• Educação
• Conquistas fora do trabalho (opcional)
• Lista de habilidades e competências
5 phone screen – espécie de entrevista realizada por videoconferência, frequentemente acompanhada de testes técnicos.
606.3.5 Submissão
A submissão a uma vaga é geralmente composta de uma versão do résumé, podendo
está ser expressa em formato de documento de texto, HTML ou pdf, acompanhada de uma
carta de apresentação. Segundo LESTER a carta de apresentação aumenta a chance de
contratação (LESTER, 2009).
A carta de apresentação é uma forma de se apresentar de forma personalizada ao
leitor, apontando coisas que não estejam contidas no résumé ou dando ênfase a dados
contidos. A carta de apresentação além de uma breve apresentação, pode conter as motivações
para se candidatar a vaga. LESTER (2009) indica que a carta de apresentação deve conter:
• Por qual meio a vaga foi descoberta
• Explica o que se têm a oferecer a companhia e como isso vai atender as necessidades
da mesma
• Demostra que foi feita uma pesquisa sobre a companhia
• Elucida contatos prévios com membro da empresa
• Demostra a motivação especifica para a vaga, o porquê da escolha
6.3.6 Phone Screen
Uma phone screen é uma entrevista realizada através de videoconferência ou
telefonema, com o objetivo de verificar as habilidades, experiência e personalidade (LESTER,
2009). Para desenvolvedores e programadores a phone screen frequentemente envolve
desenvolvimento de pequenos programas e algoritmos (ATWOOD, 2012), podendo até
mesmo incluir uma seção de pair-programing com um desenvolvedor da empresa.
6.3.7 Entrevista
Se o candidato for aprovado, o próximo passo é uma entrevista. Ao realizar a
entrevista é importante estar ciente de que o profissional que conduzirá a entrevista, quer
contratar o candidato (LESTER, 2009). O objetivo de uma entrevista, no ponto de vista do
candidato, é obter uma oferta de trabalho ou passar para o próximo estágio para obter uma
oferta (LESTER, 2009).
Um candidato que é chamado para uma entrevista têm grandes chances de ser
61contratado (ATWOOD, 2012), a companhia não gastaria tempo e recursos se fosse de outra
forma. LESTER (2009) recomenda que a entrevista deve ser encarada como o primeiro dia de
trabalho, permitindo uma postura mais ativa e livre, ou seja, a entrevista deve ser vista como
uma demostração, podendo ser interpretada como uma conversa bilateral entre colegas de
trabalho.
6.3.8 Negociações Finais e Contratação
Caso a empresa reconheça o candidato como uma adição útil, ela oferecera uma vaga
e possivelmente oferecera uma oferta salarial. LESTER (2009) recomenda que a oferta não
seja aceita de imediato, recomendando um prazo de 24 horas para avaliação da proposta e das
implicações de sua aceitação.
Mesmo que o processo não de certo é interessante que o candidato peça por
feedback, pois este pode ser uma valiosa oportunidade de aprimoramento. Uma boa prática
apontada por LESTER (2009), é o envio de notas de agradecimento após o fim da entrevista
ou no dia posterior, agradecendo ao tempo e interesse e expressando novamente o interesse no
trabalho.
6.4 CARREIRA
Uma carreira pode ter diversos caminhos. Independente do caminho adotado é
importante se manter atualizado (LESTER, 2009). Uma distinção lógica da futura carreira é a
permanência no setor ou não, decisão que pode ser influenciada por um longo espectro de
fatores como economia, crescimento profissional, desenvolvimento tecnológico, fatores
pessoais e questões de saúde.
O decorrer da carreira, por se passar em um futuro desconhecido, ainda mais em uma
área com constante mudança como TI, é imprevisível. Mesmo assim é possível fazer
especulações baseando-se no cenário atual. Possíveis carreiras são:
• Líder Técnico - Com o passar do tempo e com ganho de experiência,
desenvolvedores de software que demostram competência em liderar e responsabilidade,
comumente se tornam líderes técnicos (CARTER, 2011). Onde obtêm maior participação e
mais voz em projetos como um todo.
62• Gerente - Desenvolvedores de software que após certo tempo demostra,
habilidades para liderança e gerenciamento de pessoas são frequentemente convocados para
assumir um cargo de gerente (LOPP, 2010). No entanto ao optar por esta carreira, geralmente
o profissional acaba perdendo o contato direto com a programação.
• Professor ou Instrutor – O profissional que tem prazer em auxiliar colegas
menos experientes, dar apresentações e conduzir seminários ou então busca por mais
segurança e estabilidade. Em cargos de professor é frequentemente requerido que se tenha
uma especialização ou mestrado (CARTER, 2011).
• Empreendedor – Não é incomum que depois de algum tempo trabalhando no
mercado desenvolvedores abram sua própria empresa.
Independente da inicial escolha de carreira e perspectivas sobre as futuras escolhas, é
importante lembrar que desenvolvimento de software é uma carreia global.
6.5 SAÚDE
Por causa da natureza de rápida atualização e inovação da tecnologia, profissionais
do setor de desenvolvimento de software, especialmente desenvolvedores e programadores
são estudantes perpétuos (KUTNER, 2013). Isto leva, a um estilo de vida sedentário, onde em
alguns casos acarreta também num consumo excessivo de cafeína (KUTNER, 2013).
Dos profissionais entrevistados, 29% dos entrevistados não praticam pelo menos
uma hora de atividade física por semana (APENDICE C). Sendo que em média os
desenvolvedores de software da amostra praticam 2.95 horas de atividades físicas por semana.
Sabe-se que profissionais que trabalham longos períodos sentados, trabalhando com
computadores e andando apenas pequenas distâncias (cerca ou menos de 4000 passos) por
dia, têm maiores chances de desenvolver hipertensão e diabetes tipo 2. Ambas condições
podem ter graves consequências e a longo prazo aumentar os riscos de ataque cardíacos e
derrames (KUTNER, 2013, p.11).
6.5.1 Café
Os efeitos do café e da cafeína são alvo de pesquisas, cujos resultados são muitas
63vezes polêmicos, e não raramente contraditórios. Dentre os efeitos alegados do café, pode-se
citar:
• reduz 60% da chance de câncer de próstata (KATHRYN, et.al. , 2011)
• diminui as chances de morte por uma variedade de doenças (FREEDMAN, et. al.,
2012)
• aumenta a pressão sanguínea (SMITS, THIEN, LAAR, 1985)
• diminuição de risco de diabetes tipo 2 e efeitos benéficos em inflamação subclínica e
colesterol HDL (KEMPF, et. al., 2010)
• melhora performance e estado de alerta (SMITH, et. al., 1993)
• melhora vários aspectos de atividades cerebrais como memória, humor, estado de
vigilância, nível de energia, tempo de reação e funções cognitivas gerais (RUXTON,
2008) (BRICE, SMITH, 2002) (LIEBERMAN, 1987)
• reduz o risco de Alzheimer em 65% (MAIA, MENDONÇA, 2002)
Profissionais de TI, o que inclui profissionais do setor de desenvolvimento de
software, são conhecidos pela sua apreciação ao café e a bebidas com cafeína. Levando isto
em consideração o questionário incluiu perguntas sobre o consumo de café, bebidas contendo
cafeína, e sua proporção diária, o grau de preferência por café. Os resultados demostram que
39% dos profissionais de TI que compõem a amostra gostam muito de café (8-10). Sendo a
média de café diário consumido 323.387 ml.
Um dos principais fatores que levam ao consumo do café e bebidas ricas em cafeína
é o aumento das habilidades cognitivas e da atenção, como exposto por RUXTON (2008),
BRICE (2002) e LIEBERMAN (1987). Deste modo, os profissionais também tiveram a opção
de responder se os mesmos já fizeram uso de algum medicamento buscando uma melhoria de
produtividade, 6% afirmaram que sim, já teriam feito uso ou ainda fazem uso de
medicamentos com o fim de aumentar a produtividade.
647. QUESTIONÁRIO
Como parte do estudo, foi produzido e aplicado um questionário à profissionais de TI
atuantes no mercado. O questionário buscou por uma análise qualitativa do estado do
profissional de TI, da possível transição da graduação para o mercado de trabalho e as
perspectivas dos mesmos sobre a graduação e sobre a sua carreira atual. O questionário foi
construído e distribuído com a ferramenta Google Docs Form.
Todas as perguntas podem ser encontradas no APENDICE B e as análises das
respostas no APENDICE C. Algumas questões já foram exploradas durante o corpo do texto.
Neste capítulo serão abordadas questões relacionadas a graduação e a carreira, onde também
será realizada uma análise do feedback coletado.
A população da amostra constitui-se de 31 profissionais, sendo estes por um acaso já
que o formulário foi divulgado de forma geral, do sexo masculino (100%). Sendo que 97%
(30) das amostras localizada no Brasil e 3% (1) na Holanda. Os profissionais brasileiros
residentes no Brasil são distribuídos em 9 estados, distribuindo-se conforme a Tabela 1.
Estado Número de Indivíduos Porcentagem
DF 2 6%
GO 1 3%
MT 1 3%
MG 1 3%
PR 3 10%
PE 1 3%
RS 5 16%
SC 4 13%
SP 12 39%
Tabela 1: Disposição dos indivíduos da amostra
Estes profissionais se dividem entre as seguintes profissões:
• 23% Analista de Sistemas
• 18% Desenvolvedor de Softwares
• 3% Analista de Suporte Técnico
• 3% Arquiteto da Informação
65• 3% WebDesigner
• 10% Outros
Tendo como nível de escolaridade:
Escolaridade Número de indivíduos Média
Ensino Fundamental 0 0%
Ensino Médio 3 10%
Ensino Superior 22 71%
Especialização 4 13%
Mestrado 1 3%
Doutorado 0 0%
Pós-doutorado 0 0%
Não quero responder 1 3,00%
Tabela 2: Nível de Escolaridade da amostra
Os profissionais da amostra que realizaram graduação, distribuem-se entre:
Curso de Graduação Número de Individuo Média
Ciência da Computação 7 23%
Engenharia de Software 0 0%
Sistema da Informação 8 26%
Engenharia da Computação 3 10%
Outro 13 42%
Não quero responder! 0 0%
Tabela 3: Nível de Graduação da amostra
Foi requerido que os profissionais de TI informassem qual foi sua disciplina
preferida e a de menor afinidade durante a graduação. A disciplina preferida foi Linguagens
de Programação com 29% e a de menor afinidade foi o campo “Outra” com 27%, não tendo
assim uma especificidade em relação a de menor afinidade.
Foi solicitado que os profissionais, se desejado, fornecessem conselhos para os
graduandos. A listagem dos conselhos está disponível no APENDICE C. Através da análise
dos conselhos fornecidos é possível notar a tendência da recomendação da prática durante a
66graduação, que é abordada no capítulo 4 e 5, através do fornecimento de dados para a
participação em projetos de pesquisa e desenvolvimento de software open source.
Os profissionais de TI foram questionados sobre se estavam felizes com a carreira
atual. Dos profissionais questionados 77% afirmaram estavam contentes com a carreira atual,
19% afirmarão que não estavam e 3% não quiseram se pronunciar.
7.1 REFLEXÕES SOBRE O QUESTIONÁRIO
O questionário do estudo possuía um campo para críticas e opiniões sobre o mesmo.
Através da análise deste feedback e reavaliação do questionário é possível apontar pontos para
melhorias.
Um dos principais pontos notados é a extensão do escopo do questionário, que
abrange questões relacionadas a formação, carreira, programação, aplicação de tecnologias e
metodologias, saúde e a opinião pessoal para temas como graduação, entrada no mercado,
conselhos, satisfação pessoal com a carreira, pós-graduação entre outros. Tendo como critério
para seleção de questões “O que seria interessante perguntar aos profissionais de TI no
mercado?”. Entretanto uma abordagem mais objetiva, como a responta a uma pergunta
especifica ou validação de uma hipótese, poderia resultar em resultados mais consistentes.
Ainda assim, pela exceção do escopo, os dados coletados no questionário poderão
servir como apoio a outros estudos ou mesmo promover interdisciplinaridade, já que o
questionário aborda fatores referentes a saúde dos profissionais.
Através da análise do feedback coletado é possível sugerir como melhoria ao
questionário aplicado:
• Definição de unidades de tempo – questões com relação a idade e tempo de atuação
não incluíam a unidade temporal especifica;
• Reavaliação do fluxo das questões para profissionais sem graduação – perguntas
relacionada a graduação eram realizadas à profissionais sem a formação;
• Permitir a definição de formação em andamento – permitir a opção de formação em
andamento ou incompleta, por exemplo Mestrado incompleto;
• Perguntar se os profissionais com graduação se formaram na disciplina de Ciência da
Computação ou tiveram a graduação em outra área – a casos de profissionais formados
em outras áreas que tornariam perguntas especificas a formação irrelevantes;
• Especificação do ramo da empresa/organização ou setor de desenvolvimento de
67software – como fábrica de software, software para consumo interno, criação de
produtos, consultoria e outros;
• Retirar a questão sobre nome – indivíduos da amostra evitaram a questão;
• Especificar questões que levam em consideração perícia e adjetivos – em relação a
perícia com línguas estrangeiras e especificação sobre a opinião da amostra sobre dado
conceito reforçando o contexto;
• Permitir a seleção de várias alternativas na questão sobre área de atuação – pois uma
empresa pode atuar em diversas áreas;
Com relação a distribuição dos questionários, que foi realizada de forma online, foi
descoberto que a ferramenta empregada Google Docs Form permitia impressão do
questionário, possibilitando assim a coleta de informações de forma analógica. O que poderia
auxiliar a aumentar a amostra, apesar que pretendeu-se neste trabalho ter melhores respostas
do que muitas respostas, ou seja uma pesquisa qualitativa. A conclusão esta que pode ser
empregada a futuros trabalhos com a ferramenta.
688. PUBLICAÇÕES E APRESENTAÇÕES
Durante o decorrer do estudo foram produzidos artigos acadêmicos e publicações,
referentes a esta pesquisa e a estudos originados desta. Neste capítulo serão citadas estas
apresentações e publicações.
Das apresentações realizadas durante o decorrer deste estudo, que estão relacionadas
a pesquisa, pode-se citar as seguintes:
• Sumário do TCC – XI Semana Acadêmica do Curso de Ciência da Computação – URI
Campus Santiago
• O Perfil de Profissionais de TI e o Desenvolvimento de Software: da acadêmia ao
mercado de trabalho – Latinoware 2014
• Reflexões sobre a formação em cursos de graduação da área de computação em
relação ao Profissional desejado pelo mercado de trabalho – XVIII SEPE – UNIFRA
As publicações referentes a pesquisa e realizadas durante o deu decorrer são:
• Reflexões sobre a formação em cursos de graduação da área de computação em
relação ao Profissional desejado pelo mercado de trabalho – XVIII SEPE – UNIFRA
• MAD: um jeito de fazer ciência – II ERI-GO.
• MAD: a way to do science – figshare
69CONCLUSÃO
Um dos principais objetivos deste estudo foi melhorar a qualidade do profissional
formado, especialmente os que buscam ingressar no mercado de desenvolvimento de
software, através do fornecimento de informações técnicas e perspectivas que possam a vir a
ajudá-los durante e após a formação. Deste modo, buscando também reduzir a lacuna entre o
profissional formado e o requerido pelo mercado.
Para atender este objetivo, o estudo buscou uma ampla variedade de fontes de
informação, contendo dados provenientes de pesquisas bibliográficas, perspectivas sobre a
aplicação de tecnologias em projetos e a aplicação de um questionário à profissionais atuantes
no mercado de TI. Podendo desta maneira, contribuir para o aprendizado dos estudantes sendo
este independente ou relacionado as aulas, e com sua entrada no mercado de trabalho, através
da aquisição de experiência com a participação/criação de projetos de desenvolvimento open
source e de pesquisa, e da facilitação da aquisição de emprego, com o conhecimento do
processo de job hunt, e a futura carreira, através de perspectivas sobre carreira e dados sobre
saúde.
Mesmo assim, apesar das contribuições da pesquisa e do escopo abordado, limitações
em relação ao prazo para o desenvolvimento da pesquisa e em relação ao limite de extensão
do estudo, não representam uma solução completa para o problema. Sendo assim necessários
estudos sobre a eficácia da aplicabilidade do estudo, bem como, uma análise mais
aprofundada do escopo abordado e por fim, estudos sobe tópicos não abordados e voltados
para educação como por exemplo, qualidade da educação, viabilidade e eficiência de
diferentes didáticas na sala de aula, avaliações dos currículos de cursos da disciplina de
ciência da computação e a eficiência de diferentes políticas de avaliação.
Em relação a aprendizado, foi possível levantar diversos fatores que influenciam no
mesmo, bem como a realização de propostas interessantes como o uso de princípios Lean e o
aprendizado sobre demanda. No entanto, pode-se notar uma deficiência em relação a
aplicação destes fatores de forma conjunta e na falta de propostas em relação a abordagens de
aprendizado. Em parte, isto pode ser justificado pela aplicação de metacognição, uma vez que
o estudante deve testar diversas formas e técnicas de aprendizado, selecionando, adaptando e
melhorando-as de forma que estas se adaptem ao seu estilo de aprendizagem. Uma proposta
mais específica poderia refletir as características de aprendizado do autor, podendo não ser
adequada ao leitor.
70No capítulo sobre prática, pesquisa e projetos open source, foram explorados
conceitos que podem auxiliam os estudantes no processo de criação/participação de projetos
tanto de pesquisa quanto open source. A pesquisa para este segmento do estudo auxiliou na
produção de propostas de metodologias, uma metodologia de pesquisa que foi publicada
(MAD) e uma metodologia de desenvolvimento de software que pode ser explorada em um
futuro estudo.
No capítulo de desenvolvimento de software foram exploradas uma série de trends
tecnológicas, sendo correlacionadas com resultados obtidos no questionário e da aplicação em
projetos de desenvolvimento de software independentes. Se buscou, além da introdução as
trends, a exposição da opinião do mercado sobre estas trend, através da análise de surveys e
relatório. Fez-se uso, também do fornecimento da perspectiva da aplicação, para que fosse
possível obter noções da importância e da aplicabilidade das trends selecionadas, objetivando
assim, uma melhor elucidação destas trends.
São abordados fatores sobre o mercado de trabalho e o processo de job hunt no
capítulo Mercado de Trabalho e Carreira. Onde são abordadas soft skills e explorado de forma
genérica o processo de job hunt. Através deste capítulo esperou-se facilitar o desenvolvimento
profissional e a entrada no mercado. O capítulo também abordou perspectivas sobre a carreira
de profissionais do setor de desenvolvimento de software, e da saúde destes profissionais.
São apresentados no capítulo Questionário os resultados do questionário. Pode-se
notar que houve uma falta de contextualização e objetividade em relação ao tema do estudo
no questionário, sendo propostas melhorias ao questionário baseando se nos resultados
obtidos e na opinião de indivíduos da amostra sobre as questões.
71
REFERÊNCIAS
ADDUCI R., et.al.. Networking Skills in Latin America, 2013.
ALVES R..O que lhe motiva a aprender inglês?. 2012. Disponível em<http://inglesnarede.com.br/dicas-de-ingles/o-que-lhe-motiva-a-aprender-ingles/> Acessadoem: 26 mai de 2014
AMERICAN COUNCIL ON THE TEACHING OF FOREIGN LANGUAGES. ACTFLProficiency Guidelines 2012. New York – EUA. 2012
AMERICAN INSTITUTES FOR RESEARCH - AIR; TEAL: Just Write! Guide.Washington, EUA 2012.
ANDREWS, M.. How does background noise affect our concentration. ScientificAmerican Mind, 2010.
ASC - Academic Skills Center. Note Taking System, California Polytechnic State UniversitySan Luis Obispo, California. Disponível em:<http://www.sas.calpoly.edu/docs/asc/ssl/NoteTakingSystems.pdf> Acessado em mai, 2014.
ASHER J.. Breakthrough in Brain Research: Learning Languages Without Stress. 2014.Disponível em: <http://www.tpr-world.com/brain-research.html>. Acessado em: 10 mai de2014.
ASSOCIAÇÃO BRASILEIRA DAS EMPRESAS DE SOFTWARE - ABES. MercadoBrasileiro de Software: Panorama e Tendências, 1ª edição, São Paulo – Brasil. 2014.
ASSOCIAÇÃO PARA PROMOÇÃO DA EXCELÊNCIA DO SOFTWARE BRASILEIRO –SOFTEX. Mercado de Trabalho e Formação de Mão de Obra em TI, Brasil, 2013.
ASSOCIATION FOR COMPUTER MACHINERY & IEEE COMPUTER SOCIETY – THEJOIN TASK FORCE ON COMPUTING CURRICULA. Computer Science Curricula2013: Curriculum Guidelines for Undergraduate Degree Programs In Computer Science. 20Dez. 2013
ATWOOD, J. Effective Programing: More than writing code, 2012.
72BARGH, J., MCKENNA K. The Internet and social life. Annu. Rev. Psychol. v.-55, 2004:573-590.
BARRASS, R. Scientists Must Write: A guide to better writing for scientists, engineers andstudents. Psychology Press, 2002.
BELFIORE, M. The Department of Mad Scientists. HarperCollins, 2009.
BELL, J. Doing your Research Project: A guide for first-time researchers in education,health and social science. Open University Press, 4ª edição, 2005.
BEN-ARI M.. Contrutivism in Computer Science Education, Journal of Computers inMathematics and Science Teaching, in press, 1998
BERNDTSSON, M.; et. al. Thesis Projects: A guide for Students in Computer Science andinformation Systems, Springer: 2ª edição, 2008.
BJÖRKMAN, Christina; TROJER, Lena. What does it mean to Know Computer Science?Perspectives from Gender Research. Blekinge Institute of Technology - TechnoscienceStudies. 2006.
BRANAS, P. AngularJS Essentials, Packt Publishing: 2014.
BRICE, C., SMITH A. Effects of caffeine on mood and performance: a study of realisticconsumption. Psychopharmacology 164.2 (2002): 188-192.
CAMBRIDGE DICTIONARIES ONLINE. Computer Science Definition; Disponível em:<http://dictionary.reference.com/browse/computer+science?s=t> Acessado em: 5 mai. 2014
CARTER J.. New Programmer's Survival Manual, 2011.
CHAMOT A.; et. al. Developing Autonomy in Language Learners: Learning StrategiesInstruction in Higher Education, Georgetown University George Washington UniversityCenter For Applied Linguistics, 2010.
CHAMOT A.; et. al..Developing Autonomy in Language Learners: Learning StrategiesInstruction in Higher Education, Georgetown University George Washington University
73Center For Applied Linguistics, 2010.
CHOWDHARY, V.. CSS Preprocessors: The future of CSS. 2011.
COSTA E.. Inglês e o profissional de TI. 2008. Disponível em:<http://www.dimensaotech.com/2008/02/a-importancia-da-lingua-inglesa-para-o-profissional-de-ti/> Acessado em: 21 mai de 2014
CRUSE R.; PECK E.. A Importância oo Inglês para as Tecnologias da Informação, #tear,2011
DANOWSKA-FLORCZYK E.; MOSTOWSKI P.. Gamification as a new direction inteaching Polish as a foreign language. University of Warsaw ,Poland. V InternationalConference ICT for Language Learning, 2012.
DEZURE D.; et. al.. Research on Student Notetaking: Implications for Faculty andGraduate Student Instructors, CRLT Occasional Papers, 2001, University of MIchigan.
DICTONARY.COM. Computer Science Definition; Disponível em:<http://dictionary.cambridge.org/us/dictionary/business-english/computer-science?q=computer+sciencet> Acessado em: 5 mai. 2014
DODIG-CRNKOVIC, G. Scientific methods in computer science. Proceedings of theConference for the Promotion of Research in IT at New Universities and at UniversityColleges in Sweden, Skövde, Suecia. 2002.
DÖRNYE Z.. Motivation in second and foreign language learning. Language Teaching,31, p. 117-135 ,1998.
DOURADO L.; PINHEIRO B. Dicotomia teória-prática docente em Ciência daComputação: um guia de utilização de fóruns para diagnóstico e aprimoramento da práticadocente. Anais do VII Simpósio de Informática da Região Centro do RS - SIRC/RS 2008 -ISBN 978-85-88667-89-1 Santa Maria - RS, junho de 2008
FIELDING, J. Beginning Responsive Web Design with HTML5 and CSS3, 2014.
FIGUEIREDO R.; et. al. Graduação em Engenharia de Software versus Graduação emEngenharia de Computação: uma reflexão. III Fórum de Educação em Engenharia de
74Software, 2010
FLOWER, M. Continuous Integration, 2006. Disponível em:<http://www.martinfowler.com/articles/continuousIntegration.html>
FOGEL, K. Producing Open Source Software: How to Run a Successful Free SoftwareProject,2013.
FORD, N. The productive programmer. O'Reilly Media, Inc., 2008.
FOX, A.; PATTERSON D.. Engineering Long-Lasting Software. Strawberry Canyon LLC,2012.
FREEDMAN, Neal D., et al. Association of coffee drinking with total and cause-specificmortality. New England Journal of Medicine 366.20 (2012): 1891-1904.
FREEMAN E.; et.al... Use a cabeça: Padrões de Projeto. 2° edição, 2010.
FURST M; DEMILLO R. Creating Symphonic-Thinking Computer Science Graduatesfor an Increasingly Competitive Global Environment, Georgia Tech College ofComputting, Disponível em: <http://www.cc.gatech.edu/sites/default/files/Threads%20Whitepaper.pdf> Acessado em: Acessado em: 17 mar. 2014
GAEBEL M.. MOOCs Massive Open Online Courses, 2013, EUA Occasional Papers.
GASS S.. How to Learn a Foreign Language. Newnan Advising Center - The University OfMichigan, Disponível em:<http://www.lsa.umich.edu/advising/academicsupport/strategiesforsuccess/coursespecificstrategies/howtolearnaforeignlanguage> Acessado em: 11 mai de 2014
GENTRY J.. Guide to Business Gaming and Experiential Learning, Association forBusiness Simulation and Experiential Learning (ABSEL), 1990.
GRAY L.. No Hypoxic Heroes, Please! Biological Limits on Cowboy Programmers, 1998, CROSSTALK The Journal of Defense Software Engineering p. 33-34.
GREEN, B. ; SESHADRI S.. AngularJS: Up and Running, O'Reilly Media, 2014.
75HAMAYAN E. ; Making language learning more fun: Integrating language and content inthe classroom, SHARE Conference, Buenos Aires, July 2009
HEIGER G.. Duolingo - How Gamified Language Learning Benefits The Internet AndHumanity. 2012. Disponível em: <http://www.enterprise-gamification.com/index.php?option=com_content&view=article&id=91:duolingo-how-gamified-language-learning-benefits-the-internet-and-humanity&catid=13&Itemid=17&lang=de> Acessado em: 11 mai de2014
HOWARD, C.. Beyond the Classroom, 2009.
HOWE M.; et. al. Prolonged Dopamine Signalling in Striatum Signals Proximity andValue of Distant Rewards. Nature, 2013. Dísponivel em:<http://www.nature.com/nature/journal/v500/n7464/full/nature12475.html.>
HOWTOSTUDY.COM. Create a Study Plan. Disponível em:<http://www.howtostudy.com/create-a-study-plan/> Acessado em: 23 jun. de 2014
HUMBLE, J., FARLEY D.. Continuous Delivery: Reliable Software Releases through Build,Test, and Deployment Automation, Addison-Wesley, 2010.
HUNT A.. Pragmatic Thinking & Learning: Refactor your Wetware. 2008
HUNT, A., THOMAS, D.. The pragmatic programmer: from journeyman to master.Addison-Wesley Professional, 2000.
IEEE COMPUTER SOCIETY. Edsger W. Dijkstra: 1974 Harry H. Goode MemorialAward Recipient; Disponível em <http://www.computer.org/portal/web/awards/dijkstra>Acessado em: 5 mai. 2014
INTERNATIONAL SOCIETY FOR TECHNOLOGY IN EDUCATION. ISTE Standards:Computer Science Education, 2011. Disponível em: <http://www.iste.org/docs/pdfs/20-14_ISTE_Standards-CSE_PDF.pdf> Acessado em: 24 mar 2014.
ISO/IEC 12207:2008. Systems and software engineering — Software life cycle processes;segunda edição, 2008-02-01
KAPUR, R. ; et. al. Getting Started with Open Software Development, Canada, 2010.
76KATHRYN, W., et al. Coffee consumption and prostate cancer risk and progression inthe Health Professionals Follow-up Study. Journal of the National Cancer Institute 103.11(2011): 876-884.
KEMPF, K., et al. Effects of coffee consumption on subclinical inflammation and otherrisk factors for type 2 diabetes: a clinical trial. The American journal of clinical nutrition91.4 (2010): 950-957.
KENNEDY, X. J., et.al. The Bedford guide for college writers. Boston: St. Martin's Press,1993.
KLAWE, M.. Refreshing the nerds. In: Communications of the ACM, Vol. 44, No. 7, pp. 67-68. 2001
KNIBERG,, H.. Lean from the Trenches: Managing Large-Scale Projects with Kanban,2011.
KOSKELA, L.. Test Driven: Practical TDD and Acceptance TDD for Java Developers.Manning, 2007.
KOTHARI, C. Research Methodology: Methods and Techniques, 2ª edição revisada, 2004.
KRASHEN S.. Principles and Practice in Second Language Acquisition. University ofSouthern California, 2009.
KUMAR, R. Research Methodology: a step-by-step guide for beginners, 3ª edição, 2011.
KWAPIS L.; HELMSTETTER F.. Does PKM(zeta) maintain memory?, Department ofPsychology University of Wisconsin-Milwaukee, Elsevier Brain Research Bolletin.Disponível em:<http://www.sciencedirect.com/science/article/pii/S0361923013001445>Publicado em: 19 set. 2013
LESTER, L. Land the Tech Job You Love. The Pragmatic Bookshelf, 2009
LIEBERMAN, H. R., et al. The effects of low doses of caffeine on human performanceand mood. Psychopharmacology 92.3 (1987): 308-312.
77LINDSAY, D. Scientific Writing = Thinking in Words. CSIRO PUBLiSHING: Australia,2011.
LOPP, M. Being Geek: The Software Developer's Career Handbook, O'Reilly Media, 2010.
LYNCH T.. Listening and Note-taking (ELTT Course 1). English Language TeachingCentrer 2013
MAIA, L., MENDONÇA, A.. Does caffeine intake protect from Alzheimer's disease?.European Journal of Neurology 9.4 (2002): 377-382.
MARCOS K.. Second Language Learning: Everyone Can Benefit. TechKnowLogia ,November/December, 2001 p. 9-12.
MATTURRO, G.. Soft skills in software engineering: A study of its demand by softwarecompanies in Uruguay. Cooperative and Human Aspects of Software Engineering (CHASE),2013 6th International Workshop on. IEEE, 2013.
MAYER, J. MAD: a way to do science. figshare. 2014. Disponível em:<http://dx.doi.org/10.6084/m9.figshare.1178327> Acessado em: 22:39, Oct 10, 2014 (GMT)
MAYER, J. et.al. MAD: um jeito de fazer ciência, ANAIS II ERI-GO, 111-122, 2014.
MCCREARY, D., KELLY A.. Making Sense of NoSQL. Greenwich, Conn.: ManningPublications, 2013.
MCCULLER, P. How to Recruit and Hire Great Software Engineers. 2012.
MEMERISE. Memrise scientific background. Disponível em:<http://www.memrise.com/about/> Acessado em: 28 mai de 2014
MINISTÈRIO DA EDUCAÇÂO – SECRETÀRIA DA EDUCAÇÂO SUPERIOR.Referências nacionais dos cursos de engenharia. Brasil, Brasília -DF. Disponível em:<http://portal.mec.gov.br/dmdocuments/referenciais.pdf> Acessado em: 24 mar. 2014
MINISTÈRIO DA EDUCAÇÂO. Parecer CNE/CES 436/2001, aprovado em 5 de abril de2001 - Orientações sobre os Cursos Superiores de Tecnologia - Formação de Tecnólogo.
78Disponível em: <http://portal.mec.gov.br/cne/arquivos/pdf/CES0436.pdf> Acessado em: 02mai. 2014
MINISTÈRIO DA EDUCAÇÂO. Parecer CNE/CES nº 136/2012, aprovado em 8 de marçode 2012 - Diretrizes Curriculares Nacionais para os cursos de graduação em Computação.Disponível em: <http://portal.mec.gov.br/index.php?option=com_content&id=12991&Itemid=866> Acessado em: 20 abr. 2014
MOFFITT, J. DAOUD, F.. Seven Web Frameworks in Seven Weeks. The PragmaticProgrammers: 2013.
MORAN M. The IT Career Builder's Toolkit, Cisco Press, 2004.
MOTTA-ROTH D.. Comunidade acadêmica internacional? Multicultural? Onde?Como?. UFSM Linguagem & Ensino, Vol. 5, No. 2, 2002 (49-65)
MOURSHED .M; et. al.. Education to employment: Designing a system that works,Mckinsey Center, 2012
NASA. Scientific Method. February 7, 2008. Disponívelem:<http://www.nasa.gov/audience/foreducators/plantgrowth/reference/Scientific_Method.html#.U8Vv75S8qW0> Acessado em: 15 jul 2014
NATIONAL COUNCIL OF STATE SUPERVISORS FOR LANGUAGES. A Rationale ForForeign Language Education: A Position Paper of The National Council of StateSupervisors for Languages. Disponível em: <http://www.ncssfl.org/papers/index.php?rationale> Acessado em: 21 mai de 2014
NOONAN F. How to Improve Your Spoken English: Advice for Struggling Students, 2012
O'HARE A. The Effect of Vocal and Instrumental Background Music on Primary SchoolPupils' Verbal Memory Using a Sentence Recall Task, 2011.
OFICINA DA NET, Brasil inaugura sua primeira fábrica de circuitos integrados, 2010.Disponível em: <http://www.oficinadanet.com.br/noticias_web/2913/brasil-inaugura-sua-primeira-fabrica-de-circuitos-integrados>
OXFORD DICIONARIES. Computer Science Definition; Disponível em:
79<http://www.oxforddictionaries.com/us/definition/american_english/computer-science?q=computer+SCIENCE> Acessado em: 5 mai. 2014
PEAT, J. Scientific Writing: Easy When You Know How
PEGGY, K,; et. al.. The hard truth about soft skills: workplace lessons smart people wishthey'd learned sooner. HarperCollins e-books, 2007.
PHYSORG.COM. New study may revolutionize language learning. 2009. Disponívelem:<http://phys.org/news152292870.html>. Acessado em: 25 mai de 2014
POPPENDIECK M.; et.al.. Lean Software Development: An Agile Toolkit, 2003.
RAJASEKAR, S.; et. al. Research Methodology. , Bharathidasan University, Tiruchirapalli,India, 2006.
RAMESH G., RAMESH M.. THE ACE of soft skills. Attitude, communication andetiquette for success, New Delhi: Dorling Kindersley, 2010.
RAYMOND, E. The cathedral and the bazaar. Knowledge, Technology & Policy 12.3 (1999):23-49.
READING AND STUDY SKILLS LAB. Skimming and Scanning, Anne ArundelCommunity College. Disponível em: <https://www.aacc.edu/tutoring/file/skimming.pdf>Acessado em: 22 mai. de 2014
REIJSWOUD, V.; JAGER, A. Free and Open Software for Development: exploringexpectations, achievements and the future, Italy, 2008.
ROTHMAN, J. Manage it!: your guide to modern, pragmatic project management. PragmaticBookshelf, 2007.
RUSSELL, M. Mining the Social Web: Data Mining Facebook, Twitter, LinkedIn, Google+,GitHub, and More. O'Reilly Media, Inc., 2013.
RUXTON, C. H. S. The impact of caffeine on mood, cognitive function, performance andhydration: a review of benefits and risks. Nutrition Bulletin 33.1 (2008): 15-25.
80SADALAGE, P., FOWLER M. NoSQL distilled: a brief guide to the emerging world ofpolyglot persistence. Pearson Education, 2012.
SCHLITTMEIER S.; HELLBRÜCK J.. Background music as noise abatement in open-plan offices: A laboratory study on performance effects and subjective preferences. AppliedCognitive Psychology 2009, 2008.
SHAKYA M..The Analysis of Algorithm , Data Structures and Algorithms, 2008. Disponívelem: <http://ku.edu.np/cse/faculty/manoj/dsa/Algorithm.pdf>
SILOR A.. Effectivenes of Classical Music as Background in the Story VideoComprehension Strategy among Students with Multiple Intelligences, 2012.
SINGH S.; BARTO A.. CHENTANEZ N.; Intrinsically motivated reinforcement learning,2004.
SLOAN CAREER CORNVERSTONE CENTER. Computer Science Overview. Disponívelem: <http://www.careercornerstone.org/pdf/compsci/compsci.pdf> Acessado em: 24 mar.2014
SMART, J.. Jenkins: The Definitive Guide, O’Reilly, 2011.
SMITS, P., THIEN T., LAAR A.. Circulatory effects of coffee in relation to thepharmacokinetics of caffeine. The American journal of cardiology 56.15 (1985): 958-963.
SOCIEDADE BRASILEIRA DE COMPUTAÇÂO. Currículo de Referência da SBC paraCursos de Graduação em Bacharelado em Ciência da Computação e Engenharia deComputação. 2005. Disponível em:<http://www.sbc.org.br/index.php?option=com_jdownloads&Itemid=195&task=finish&cid=185&catid=36> . Acessado em: 24mar 2014
SOCIEDADE BRASILEIRA DE COMPUTAÇÂO. Currículo de Referência da SBC paraCursos de Graduação em Computação e Informática. 2003. Disponívelem:<http://www.sbc.org.br/index.php?option=com_jdownloads&Itemid=195&task=finish&cid=185&catid=36> . Acessado em: 24mar 2014
SOMASUNDARAM, R.. Git: Version control for everyone. Packt Publishing Ltd, 2013.
81SUBRAMANIAM, V. HUNT A. Practices of an Agile Developer. Pragmatic Bookshelf,2006.
THOMSON G. Kick-starting Your Language Learning: Becoming a Basic SpeakerThrough Fun and Games Inside a Secure Nest, 1993.
THOUGHTWORKS. Technology Radar , 2014. Disponível em:<http://thoughtworks.fileburst.com/assets/technology-radar-july-2014-en.pdf>
THUNG, Ferdian, et al. Network structure of social coding in GitHub. SoftwareMaintenance and Reengineering (CSMR), 2013 17th European Conference on. IEEE, 2013.
TRAINOR L.; et. al.. Understanding the Benefits of Musical Training: Effects onOscillatory Brain Activity, The Neurosciences and Music III—Disorders and Plasticity: Ann.N.Y. Acad. Sci. 1169: 133–142 (2009).
TRUCKER A.; et al. Computer Science Handbook. 2 edição. 2004
UNIVERSIDADE REGIONAL INTEGRADA DO ALTO URUGUAI E DAS MISSÕES URI- CAMPUS DE SANTIAGO. Projeto Político Pedagógico De Graduação No Curso DeCiência Da Computação: Modalidade Bacharelado, Nov. 2008
UNIVERSIDADE REGIONAL INTEGRADA DO ALTO URUGUAI E DAS MISSÕES URI- CAMPUS DE SANTO ÂNGELO. Projeto Pedagógico Do Curso De Bacharelado EmSistemas De Informação, jun. 2013.
VAISH, G.. Getting started with NoSQL. Packt Publishing Ltd, 2013.
VEENMAN M.; et.al. The relation between intellectual and metacognitive skills from adevelopmental perspective, 2004
VERSION ONE. 8th Annual State of Agile Survey. 2013. Disponível em:<http://www.versionone.com/pdf/2013-state-of-agile-survey.pdf >
VOCKELL E. Educational Psychology: Principles for Helping Adults Learn, 2011
WAMPLER, D.. Functional Programming for Java Developers, 2011.
82WAYNE, C.; et.al.. The craft of research. University of Chicago press, 2003.
WIDJAYA, I. HabitRPG Improves Your Productivity in the Role Playing Game Style,2013.
WYNNE, M. ; HELLESØY A. “The Cucumber Book: Behaviour-Driven Development forTesters and Developers”, 2012.
ZIMAN, J, The scientist as autodidact. The Passion to Learn: An Inquiry IntoAutodidactism: p-95, 2003.
83
–-----------------
Essa página foi intencionalmente deixada em branco.
–----------------------
APÊNDICE A
APÊNDICE A – DESCRIÇÃO DOS PROJETOS INDEPENDENTES USADOS COMO EXEMPLO DA APLICAÇÃO DE TRENDS TECNOLÓGICAS
SAlmox – Software para gestão de documentos desenvolvido para o almoxarifado da
Universidade Regional Integrada do Alto Uruguai e das Missões (URI) do Campus de
Santiago.
O projeto de pesquisa “Desenvolvimento de um Software para a Gestão de
Documentos - da Análise até a Implantação” teve como um de seus resultados o software de
gestão de documentos do Almoxarifado da URI (SAlmox). O projeto teve início em 7/2012 e
foi encerrado em 7/2014. No entanto o desenvolvedor/aluno bolsista participou do processo
de desenvolvimento até a data de 12/2014. Onde a responsabilidade do software foi
transmitida para o Núcleo de Informática da URI campus Santiago, sendo está
responsabilidade sujeita a transferência devido a novos projetos de pesquisa ou atividades de
mesmo porte.
Licença: GPL v.2
GitHub: https://github.com/jmayer13/SAlmox
Plataforma: Java Desktop (SE) suporte a Linux e Windows
Metodologia: baseada no modelo Waterfall
Linguagens:
• Java 1.7
• SQL
Tecnologias empregadas:
• JasperReport (Ireport)
• PostgreSQL (8.3 a 9,2)
COVA 2 – Gerenciador de visualização de séries de animação japonesa.
Uma das grandes dificuldades enfrentadas por fãs de séries é controlar a visualização
dos episódios, uma vez que o cotidiano atarefado, períodos de atividades intensas e pouco
tempo livre ou ainda a dificuldade de memorizar ou armazenar os índices dos episódios
visualizados acarreta na perda de episódios por pulos ou até na descontinuação do
acompanhamento da série.
Apesar de algumas redes sociais e sites de avaliação proporcionarem aos
espectadores um serviço para gerenciamento de visualizações de séries, estes não oferecem
um serviço adequado ao subtipo animação. Os serviços existentes no mercado, em relação ao
gênero, possuem bases de dados e estrutura de dados limitadas uma vez que o gênero de
animação japonesa apresenta características que se sobressaem as usuais encontradas em
sereis tradicionais .
No filme Robots, o personagem Bigweld diz “So look around for a need and start
coming up with ideas to fill that need. One idea will lead to another, and before you know it...
you've done it. See a need, fill a need.” 1 (ROBOTS, 2005) 2, essa sentença ilustra um
princípio da inovação, preencher necessidades. CARUSO associa essa citação com o
marketing de mídia social, demostrando a imprescindibilidade de uma estratégia para
determinar a necessidade do publico alvo e preencher a mesma com conteúdo.
Sendo assim, constatada a necessidade dos espectadores de séries de animação
japonesa de gerenciar a visualizações de séries de forma mais especifica e dinâmica, foi
criado um projeto para desenvolvimento de um software que fornecesse aos usuários um
gerenciamento simples e dinâmico. O software produzido por esse projeto foi nomeado
COVA.
A primeira versão do gerenciador de visualização de séries COVA foi desenvolvido
no início de 2012 tendo seu desenvolvimento levado cerca de três meses. Visando a inclusão
de novas funcionalidades, restruturação da arquitetura, remodelação da interface e publicação
do software sobre licença GPL, foi proposto o desenvolvimento de uma nova versão do
COVA, o COVA 2.
Licença: GPL v.3
Plataforma: Java Desktop (SE) suporte a Linux e Windows
Metodologia: MIM
Linguagens:
• Java 1,7
• Scala 2.10
• SQL
Tecnologias empregadas6:
Trello: https://trello.com/b/quI25F5c
GitHub: https://github.com/jmayer13/COVA2.git
UML modeling tool: GenMyModel + draw.io
Prototype tool: InVision + Pencil project
6 Dados referentes a novembro de 2014
Java Build System: Gradle
Java continuous integration: Jenkins
Java Functional Acceptance Test : Cucumber
Java Unit Test: JUnit
Java code analysis: PMD, FindBugs, Checkstyle, SONAR
Java auto-update: ad-hoc downloading from repository
RDBMS: h2
Logging: Log4J
UI/util library: JOne
APÊNDICE B
APENDICE B - QUESTIONÁRIO
Questionário TCCEste questionário faz parte do trabalho de conclusão de curso “PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DE DESENVOLVIMENTO DE SOFTWARE” que está sendo desenvolvido pelo acadêmico Jonas Mayer Ferreira, orientado pelo Prof. Luiz Henrique Rauber Rodrigues e coorientado pela Prof.Mst.Luciéli Tolfo Beque Guerra. Os dados coletados neste trabalho não serão disponibilizados ou explorados diretamente de nenhuma outra forma senão através desse trabalho, sendo que os mesmos não terão referências diretas a qualquer participante.
* Required
Requisitos
-profissional atuando na área de TI
1. 1 - Nome:
2. 2 - Gênero: *Mark only one oval.
Masculino
Feminino
3. 3 - País: *Mark only one oval.
Brasil
Other: Skip to question 5.
Skip to question 5.
4. 4 - Estado:Mark only one oval.
AC
AL
AP
AM
BA
CE
DF
ES
GO
MA
MT
MS
MG
PA
PB
PR
PE
PI
RJ
RN
RS
RO
RR
SC
SP
SE
TO
5. 5 - Idade: *Mark only one oval.
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
6. 6 - Profissão: *Mark only one oval.
Administrador de Banco de Dados
Analista de Segurança da Informações
Analista de Suporte Técnico
Arquiteto da Informação
Desenvolvedor de Softwares
Analista de Negócios
Analista de Sistemas
Analista de Testes
WebDesigner
Professor/Instrutor
Não quero responder
Other:
7. 7 - Setor: *Mark only one oval.
Desenvolvimento de software
Educação
Suporte
Segurança
Consultoria
Não quero responder
Other:
8. 8 - Tempo de Atuação *Mark only one oval.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
9. 9 -Escolaridade: *Mark only one oval.
Ensino Fundamental
Ensino Médio
Ensino Superior
Especialização
Mestrado
Doutorado
Pós-doutorado
Não quero responder
10. 10 - Idiomas *Em quais idiomas você possui algum grau de pericia ?Check all that apply.
Português
Ingles
Espanhol
Mandarin
Other:
Programação
11. 11 - Você programa? *Mark only one oval.
Sim
Não Skip to question 16.
Skip to question 16.
12. 12 - A quanto tempo?Mark only one oval.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
13. 13 - Linguagens de programação* As mais populares de acordo com TIOBE.com em 10/07/2014Check all that apply.
C
Java
Objective-C
C++
C#
(Visual) Basic
PHP
Python
JavaScript
Visual Basic .NET
Transact-SQL
Perl
Ruby
ActionScript
F#
Lisp
Delphi/Object Pascal
Pascal
MATLAB
Assembly
Other:
14. 14 - Você usa ferramentas para composição de interfaces (palheta, delphi, dreamweaver... )Mark only one oval.
Sim
Não
15. 15 - Você é Solo? Se sim qual metodologia usa?*Por solo, se entende desenvolvedor que trabalha como único membro em projetos
16. 16 - Tipo de projetos que você trabalha: *Mark only one oval.
Pequenos (- 1000 horas)
Médios (1000 - 3000 horas)
Grandes (+ 3000 horas)
17. 17 - Você (ou sua organização) utiliza alguma metodologia ágil *Mark only one oval.
Sempre
Frequêntemente
Raramente
Nunca
metodologia ágil?
18. 18 - Você (ou sua organização) utilizam Scrum ou alguma derivação? *Mark only one oval.
Sim
Não
Scrum?
19. 19 - Você (ou sua organização) utiliza ou está no caminho de implementação de ContinuousDelivery (Entrega Cotinua)? *Mark only one oval.
Sim
Não
Continuous Delivery?
20. 20 - Você está ciente do paradigma SaaS (Software as a service - Software como serviço) *Mark only one oval.
Sim
Não
Não quero responder
21. 21 - Você se considera um programador/DBA poliglota? *Mark only one oval.
Sim
Não
Não estou a par do conceito
Não quero responder
22. 22 - Qual foi a importância do fator financeiro para a escolha da sua profissão? *1- Nenhuma 10 - Fator primordialMark only one oval.
1-3
3-5
5-8
8-10
Formação e carreira
23. 23 - Qual curso de graduação você cursou? *Mark only one oval.
Ciência da Computação
Engenharia de Software
Sistema da Informação
Engenharia da Computação
Outro
Não quero responder!
24. 24 - Qual a instituição?
25. 25 - Durante a graduação qual era a sua área preferida? *Mark only one oval.
Algoritmos e Complexidade
Arquitetura e Organização
Ciência Computacional
Estruturas Discretas
Gráficos e Visualização
Interação Homem-Máquina
Garantia da Informação e Segurança
Gerenciamento de Informações
Sistemas Inteligentes
Redes e Comunicações
Sistemas Operacionais
Desenvolvimento baseado em Plataforma
Computação Paralela e Distribuída
Linguagens de Programação
Fundamentos de Desenvolvimento de Software
Engenharia de Software
Fundamentos de Sistemas
Temas Sociais e Prática Profissional
Outra
Não quero responder!
26. 26 - Durante a graduação, qual área você menos gostava? *Mark only one oval.
Algoritmos e Complexidade
Arquitetura e Organização
Ciência Computacional
Estruturas Discretas
Gráficos e Visualização
Interação Homem-Máquina
Garantia da Informação e Segurança
Gerenciamento de Informações
Sistemas Inteligentes
Redes e Comunicações
Sistemas Operacionais
Desenvolvimento baseado em Plataforma
Computação Paralela e Distribuída
Linguagens de Programação
Fundamentos de Desenvolvimento de Software
Engenharia de Software
Fundamentos de Sistemas
Temas Sociais e Prática Profissional
Outra
Não quero responder!
27. 27 - Durante a graduação você dava importância a publicação de artigos/resumos? *Mark only one oval.
Sim
Não
Não quero responder
28. 28 - Durante a graduação você realizou algum tipo de estágio ou foi bolsista? *Mark only one oval.
Sim
Não
Não quero responder
29. 29 - Quando você entrou no mercado você estava preparado? *Mark only one oval.
Sim Skip to question 31.
Não
Não quero responder! Skip to question 31.
Skip to question 31.
30. 30 - Se não o que acredita que faltou?Check all that apply.
Conhecimentos Técnicos (programação, aplicações práticas,...)
Soft skills (ética, atitude positiva, comunicação, liderança,... )
Conhecimentos mais atualizados sobre metodologias
Uma melhor consição com o estado da arte
Conhecimentos téoricos
Experiência prática
Other:
31. 31 - Considera a graduação na área o suficiente? *Mark only one oval.
Sim Skip to question 33.
Não Skip to question 32.
Não quero responder! Skip to question 33.
Skip to question 33.
32. 32 - Se não o que acredita que faltou?Check all that apply.
Conhecimentos Técnicos (programação, aplicações práticas,...)
Soft skills (ética, atitude positiva, comunicação, liderança,... )
Conhecimentos mais atualizados sobre metodologias
Uma melhor consição com o estado da arte
Conhecimentos téoricos
Experiência prática
Other:
33. 33 - Você considera a pós-graduação (especialização, mestrado, doutorado) importante? *Mark only one oval.
Sim
Não
Não quero responder!
34. 34 - Você acredita que os meios/métodos de pós-graduação brasileiros são adequados.1- Inadequados 10-AdequadosMark only one oval.
1-3
3-5
5-8
8-10
Diversos
35. 35 - Qual conselhos você daria a um estudante da área de computação?
36. 36 - Sugestões e críticasPor favor informe suas sugestões e/ou críticas para o questionário.
37. Se deseja receber uma cópia do trabalho deconclusão após finalizado, insira seu nome:
38. E e-mail:
Saúde
"As questão à seguir não são obrigatórias mas gostaríamos das suas respostas. Elas nos darão subsídios para uma conclusão mais completa e à trabalhos futuros multidisciplinares. Depois desta seção há apenas 4 perguntas finais contando a sua opinião."
39. 37 - O quanto você gosta de café?Mark only one oval.
1-3
3-5
5-8
Gosto Muito
40. 38 - O quanto você bebe?*por dia de trabalhoMark only one oval per row.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 +15
Expresso (25ml -50ml)Xícara (150 ml -200 ml) Caneca (~300ml)
41. 39 - Marque as bebidas com cafeina você bebe diariamente e a proporção diaria:Mark only one oval per row.
0 1 2 3 4 5 6 7 8 9 10 11 12 +13
Chá verdeRefrigerante abase de cola (lata)Chá mateChimarrãoBebida Energética(250 ml)
42. 40 - Você faz uso de algum medicamento para melhorar seu desempenho?Check all that apply.
ritalina
pílulas de cafeina
anfetaminas
Other:
43. 41 - Em média quantas horas você dorme por dia? *Mark only one oval.
1-2
2-3
3-4
4-5
5-6
6-7
7-8
8-9
9-10
10-11
11-12
mais que 12
Não quero responder!
44. 42 - Quantas horas você trabalha por semana?Mark only one oval.
0-20
21-30
31-40
41-50
51-60
61-70
71-80
81-90
91-100
101-110
111-120
mais que 120
45. 43 - Quantas horas de atividades físicas você pratica por semana?Mark only one oval.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
15-20
20-25
25-30
30-35
35-40
40-45
45-50
Powered by
46. 44 - Você possui alguma doença atribuída a exercício da profissão?Mark only one oval.
Sim
Não
Não quero responder!
47. 45 - Você se considera feliz com a sua atual carreira?Mark only one oval.
Sim
Não
Não quero responder!
APÊNDICE C
APÊNDICE C– RESULTADOS DO QUESTIONÁRIO
[Período de aplicação: 4/7/2014 - 30/10/2014]
Amostra: A amostra coletada aborda 31 profissionais do sexo masculino (100%) e 0
do sexo feminino (0%) totalizando 31 profissionais atuantes no mercado de TI. Sendo que
97% (30) das amostras localizada no Brasil e 3% (1) na Holanda. Os profissionais brasileiros
residentes no Brasil são distribuídos em 9 estados.
2 – Gênero:
Masculino 31 100%
Feminino 0 0%
3 – País:
Brasil 30 97%
Other 1 3%
4 – Estado:
AC 0 0%
AL 0 0%
AP 0 0%
AM 0 0%
BA 0 0%
CE 0 0%
DF 2 6%
ES 0 0%
GO 1 3%
MA 0 0%
MT 1 3%
MS 0 0%
MG 1 3%
PA 0 0%
PB 0 0%
PR 3 10%
PE 1 3%
PI 0 0%
RJ 0 0%
RN 0 0%
RS 5 16%
RO 0 0%
RR 0 0%
SC 4 13%
SP 12 39%
SE 0 0%
TO 0 0%
5 – Idade:
19 1 3%
21 2 6%
22 2 6%
23 1 3%
24 2 6%
25 2 6%
26 1 3%
27 1 3%
28 3 10%
29 3 10%
30 2 6%
31 4 13%
32 3 10%
33 1 3%
34 1 3%
37 1 3%
38 1 3%
6 – Profissão:
Administrador de Banco de
Dados
0 0%
Analista de Segurança da
Informação
0 0%
Analista de Suporte Técnico 1 3%
Arquiteto da Informação 1 3%
Desenvolvedor de Softwares 18 58
%
Analista de Negócios 0 0%
Analista de Sistemas 7 23
%
Analista de Testes 0 0%
WebDesigner 1 3%
Professor/Instrutor 0 0%
Não quero responder 0 0%
Other 3 10
%
7 – Setor:
Desenvolvimento de software 23 74%
Educação 2 6%
Suporte 0 0%
Segurança 0 0%
Consultoria 3 10%
Não quero responder 1 3%
Other 2 6%
8 - Tempo de Atuação
1 5 16%
2 3 10%
3 3 10%
4 2 6%
5 5 16%
6 2 6%
7 1 3%
8 2 6%
9 1 3%
10 2 6%
13 1 3%
14 1 3%
15 3 10%
9 – Escolaridade:
Ensino Fundamental 0 0%
Ensino Médio 3 10%
Ensino Superior 22 71%
Especialização 4 13%
Mestrado 1 3%
Doutorado 0 0%
Pós-doutorado 0 0%
Não quero responder 1 3%
10 – Idiomas
Português 31 100%
Ingles 29 94%
Espanhol 8 26%
Mandarin 0 0%
Other 4 13%
([Japonês]
Francês]
[Japonês, alemão])
[Alemao, Frances]
Programação
11 - Você programa?
Sim 29 94%
Não 2 6%
12 - A quanto tempo?
1 4 13%
4 3 10%
5 4 13%
6 1 3%
7 4 13%
8 2 6%
10 2 6%
14 1 3%
15 4 13%
16 1 3%
20 1 3%
13 - Linguagens de programação
C 15 48%
Java 21 68%
Objective-C 3 10%
C++ 11 35%
C# 16 52%
(Visual) Basic 5 16%
PHP 15 48%
Python 7 23%
JavaScript 19 61%
Visual Basic .NET 3 10%
Transact-SQL 9 29%
Perl 1 3%
Ruby 2 6%
ActionScript 5 16%
F# 1 3%
Lisp 1 3%
Delphi/Object Pascal 4 13%
Pascal 4 13%
MATLAB 3 10%
Assembly 2 6%
Other 5 16%
14 - Você usa ferramentas para
composição de interfaces (palheta, delphi, dreamweaver... )
Sim 14 45%
Não 15 48%
15 - Você é Solo? Se sim qual metodologia usa?
(4 desenvolvedores solo)
“Sim, uso um conjunto de ferramentas (bizagi, balsamiq, DBDesigner) junto ao cliente para
elaboração do projeto, depois acompanhamento ponto a ponto com o cliente. não uso
nenhuma metodologia nomeada (cascata, agil etc.)”
“Além de meu emprego, também desenvolvo software de forma independente para a App
Store. Quanto a metodologia usado em meus projetos pessoais, não uso nenhuma
metodologia formal. O mais próximo seria talvez os princípios do Agile Manifesto.”
“Sim, estruturar um projeto com lista de tarefas cumprindo cada etapa de um vez só,
determinando pontos "fracos"para serem corrigidos no final”
“Sim. Extremamente sobrecarregado. Meu trabalho é mais focado em manutenção de
software: Implementação de funcionalidades extras, bug fixes, aprimoramento de
acessibilidade de dados, Mudanças de layout do site de acordo com o humor do chefe, etc.
Preciso de um novo emprego.”
16 - Tipo de projetos que você trabalha:
Pequenos (- 1000 horas) 13 42%
Médios (1000 - 3000 horas) 9 29%
Grandes (+ 3000 horas) 9 29%
17 - Você (ou sua organização) utiliza alguma metodologia ágil
Sempre 3 10%
Frequentemente 12 39%
Raramente 8 26%
Nunca 7 23%
Metodologia ágil? 1 3%
18 - Você (ou sua organização) utilizam Scrum ou alguma derivação?
Sim 13 42%
Não 15 48%
Scrum? 3 10%
19 - Você (ou sua organização) utiliza ou está no caminho de implementação de Continuous
Delivery (Entrega Cotinua)?
Sim 12 39%
Não 17 55%
Continuous Delivery? 2 6%
20 - Você está ciente do paradigma SaaS (Software as a service - Software como serviço)
Sim 27 87%
Não 4 13%
Não quero responder 0 0%
21 - Você se considera um programador/DBA
poliglota?
Sim 17 55%
Não 9 29%
Não estou a par do conceito 4 13%
Não quero responder 1 3%
22 - Qual foi a importância do fator financeiro para a escolha da sua profissão?
1-3 15 48%
3-5 2 6%
5-8 12 39%
8-10 2 6%
Formação e carreira
23 - Qual curso de graduação você cursou?
Ciência da Computação 7 23%
Engenharia de Software 0 0%
Sistema da Informação 8 26%
Engenharia da Computação 3 10%
Outro 13 42%
Não quero responder! 0 0%
24 - Qual a instituição?
FAJ
Universidade Metodista
URI E IMED
Senac
UNG
Furb
UNISINOS
UEM
PUC/MG
UEG
UNIFRA
Universidade Presbiteriana Mackenzie
FURB
USP São Carlos
UCB
Sem graduação
FATEC
UFSM
UFSC
Universidade de São Paulo - Escola Politécnica
Universidade de São Paulo (USP)
Unicamp
IBTA / SENAC
Unisep FB
UNICESUMAR
25 - Durante a graduação qual era a sua área preferida?
Algoritmos e Complexidade 3 10%
Arquitetura e Organização 1 3%
Ciência Computacional 0 0%
Estruturas Discretas 0 0%
Gráficos e Visualização 1 3%
Interação Homem-Máquina 0 0%
Garantia da Informação e
Segurança
1 3%
Gerenciamento de
Informações
0 0%
Sistemas Inteligentes 2 6%
Redes e Comunicações 1 3%
Sistemas Operacionais 1 3%
Desenvolvimento baseado em
Plataforma
0 0%
Computação Paralela e 2 6%
Distribuída
Linguagens de Programação 9 29%
Fundamentos de
Desenvolvimento de Software
0 0%
Engenharia de Software 4 13%
Fundamentos de Sistemas 0 0%
Temas Sociais e Prática
Profissional
0 0%
Outra 6 19%
Não quero responder! 0 0%
26 - Durante a graduação, qual área você menos gostava?
Algoritmos e Complexidade 0 0%
Arquitetura e Organização 0 0%
Ciência Computacional 0 0%
Estruturas Discretas 1 3%
Gráficos e Visualização 4 13%
Interação Homem-Máquina 0 0%
Garantia da Informação e
Segurança
2 6%
Gerenciamento de
Informações
0 0%
Sistemas Inteligentes 0 0%
Redes e Comunicações 6 19%
Sistemas Operacionais 0 0%
Desenvolvimento baseado em
Plataforma
1 3%
Computação Paralela e
Distribuída
1 3%
Linguagens de Programação 0 0%
Fundamentos de
Desenvolvimento de Software
0 0%
Engenharia de Software 5 16%
Fundamentos de Sistemas 0 0%
Temas Sociais e Prática 3 10%
Profissional
Outra 7 23%
Não quero responder! 1 3%
27 - Durante a graduação você dava importância a publicação de artigos/resumos?
Sim 10 32%
Não 19 61%
Não quero responder 2 6%
28 - Durante a graduação você realizou algum tipo de estágio ou foi bolsista?
Sim 23 74%
Não 6 19%
Não quero responder 2 6%
29 - Quando você entrou no mercado você estava preparado?
Sim 18 58%
Não 10 32%
Não quero responder! 3 10%
30 - Se não o que acredita que faltou?
Conhecimentos Técnicos (programação, aplicações
práticas,...)
9 29%
Soft skills (ética, atitude positiva, comunicação, 3 10%
liderança,... )
Conhecimentos mais atualizados sobre
metodologias
6 19%
Uma melhor consição com o estado da arte 4 13%
Conhecimentos téoricos 2 6%
Experiência prática 9 29%
Other 2 6%
31 - Considera a graduação na área o suficiente?
Sim 10 32%
Não 21 68%
Não quero responder! 0 0%
32 - Se não o que acredita que faltou?
Conhecimentos Técnicos (programação, aplicações práticas,...) 16 52%
Soft skills (ética, atitude positiva, comunicação, liderança,... ) 7 23%
Conhecimentos mais atualizados sobre metodologias 10 32%
Uma melhor consição com o estado da arte 7 23%
Conhecimentos teóricos 3 10%
Experiência prática 16 52%
Other 2 6%
33 - Você considera a pós-graduação (especialização, mestrado, doutorado) importante?
Sim 20 65%
Não 9 29%
Não quero responder! 2 6%
34 - Você acredita que os meios/métodos de pós-graduação brasileiros são adequados.
1-3 9 29%
3-5 8 26%
5-8 9 29%
8-10 0 0%
Diversos
35 - Qual conselhos você daria a um estudante da área de computação?
Não desanime com a teoria.
Estudar muito e estar sempre se atualizando junto às tecnologias.
Faça estágio. Experimente saiba quando questionar/ ficar de bico calado, divirta-se.
Pratiquem.
Procure estudar lógica, no sentido filosófico/matemático da coisa. Entender como as coisas
funcionam, antes de como elas devem funcionar em um software.
Você nunca vai saber o suficiente.
Estudar praticando
Na faculdade ou em qualquer curso você só aprende o básico, e como o ditado diz a prática
traz a perfeição então busque mais conhecimentos e os use. Busque mais e mais
aperfeiçoamento pois conhecimento nunca é demais...
Procurar aprender sobre empreendedorismo e desenvolvimento de contatos profissionais
Se forem desenvolver software como profissão, prestem atenção na matéria de engenharia de
software, desenvolvam os projetos pedidos com vontade e aprendam a criar/usar bancos de
dados da forma certa. programas mal feitos podem refeitos. já refazer um banco de dados
mal feito e em uso é uma cruzada sangrenta.
Crie seus próprios programas. Pelo menos no mercado em que atuo, criação de aplicativos
mobile, portfólio é a única coisa que conta.
Estude
Ganhe tanta experiência quanto conseguir em full stack, da concepção ao deployment.
Aprofunde-se em um ponto, tenha conhecimento básico de todos.
Se o desejo for áreas de desenvolvimento, busque um estágio durante a graduação, assim terá
mais chances no mercado de trabalho. Se o desejo for a área acadêmica, tente participar de
projetos acadêmicos como bolsista ou mesmo projetos que não oferecem bolsa.
Foque-se mais em arquitetura e lógica de programação, e menos em linguagens especificas
Esteja sempre estudando além do tempo das aulas; viva a computação no seu dia a dia, pense
e pratique, mesmo que mentalmente, técnicas e recursos de programação e outros.
Estude por conta própria, pois, se ficar apenas com o que a graduação oferece, você está em
desvantagem. Além disso, escolha uma skill e maximize seu esforço nela, as outras deverão
servir de suporte a esta.
Siga atentamente o mercado. Há um gap grande entre a academia e o mercado
36 - Sugestões e críticas
* O questionário não leva em conta a situação de profissionais que não fizeram graduação
em alguma área ligada a Ciência da Computação. Portanto algumas perguntas não fazem
sentido. * O questionário também parece direcionado a profissionais que trabalham com TI
corporativa. E algumas perguntas não fazem muito sentido para quem trabalha em empresas
cujo produto é software, especialmente startups. Como por exemplo medir o tamanho de
projeto pelo número de horas do projeto. Isso é tão TI corporativo que até me imaginei
vestindo uma camisa branca de botão com crachá preso ao bolso. No mundo de startups isso
não existe de medir tamanho de projeto em horas. * Acho que informação sobre renda pode
ser relevante ao fazer um perfil do profissional de TI, para depois fazer cruzamentos com
tempo de experiência, linguagem de programação utilizada, estado onde mora, curso feito,
universidade onde estudou, etc. * Acho que também pode ser relevante buscar entender em
que tipo de empresa o profissional trabalha. TI corporativo, fábrica de software, agências
digitais e startups são muito diferentes. * Acho que também pode ser significativo identificar
qual o papel do programador em sua organização. - Software de consume interno? (TI
corporativo) - Criação de produtos para vender direto ao mercado? (Business products ou
consumer products) - Criação de software customizado para terceiros? (Fábrica de software
ou agências digitais).
Retirar a pergunta do nome, Revisar o questionário para algumas bobeiras (na pergunta sobre
tempo de atuação não esta especificado a unidade de tempo) Revisar questionário para
pessoas atuantes em TI que não tem formação em TI,
Falta continuidade das perguntas quando muda de página.
Faltou a unidade na quantidade de anos (acho) na pergunta de quanto tempo programa.
Um bom trabalho só estruture mais antes de aplicar.
Acho importante uma revisão de todo o questionário. Estão presentes perguntas
completamente sem objetivo. Por exemplo a pergunta 33: qual o objetivo de saber nossa
opinião sobre o que é “importante”? O que é "importante"? Importante para mim?
Importante para toda a nossa classe? Importante para assegurar uma vaga no mercado de
trabalho? Em questionários para trabalhos científicos, deve-se evitar perguntas e termos tão
subjetivos. Alternando a questão para obter uma informação mais direta, como "Você tem
planos para atingir qual nível de educação? R: superior/especialização/mestrado/etc.", "Você
acredita que estaria em seu atual emprego caso não tivesse sua graduação atual?", "Continuar
estudando vai te proporcionar melhores oportunidades no mercado de trabalho?", ou "Qual o
motivo para você não tentar uma graduação de nível além da sua?". Com perguntas sobre a
situação geral geram apenas respostas incertas. Você terá apenas a opinião de um monte de
gente. Opiniões que podem ou não ter alguma base, podem ser um mero chute, etc. Com
perguntas mais diretas, e uma boa quantidade de entrevistados, você terá dados mais
concretos. Você "saberá" que 132 pessoas não tentam mestrado por tal motivo, e não que 458
pessoas "acham que a maioria das pessoas não tenta mestrado por tal motivo". Procure
perguntar diretamente sobre o entrevistado, sobre o que ele pode falar com propriedade. A
opinião dele não vale nada, o que te interessa são as informações concretas sobre ele.
Recomendo conversar com seu orientador, ou talvez até com algum outro professor com
mais experiência com questionários. Espero ter ajudado.
Maioria do pessoal que estudei, seguiu vida academia por 'facilidade' muitos nem sabiam
programar direito. acho isso triste. =\
Seu questionário pede informações de tempo, como a quanto tempo faz tal coisa, mas não
informa a unidade. São meses, anos, décadas? Não sei qual seu intuito com o questionário,
mas ao meu ver perguntar se considero pós-graduação importante não faz sentido se não tem
uma finalidade. Para o mercado de trabalho ou para pesquisa e desenvolvimento? Porque as
repostas podem ser bem diferentes.
A questão sobre área de atuação deve ter múltipla escolha; na parte de métodos, seria legal
sondar programadores que usam técnicas mais clássicas (UML, modelagem de processos,
etc). (Mas, olha, eu trabalho justamente com software para análise de pesquisas de opinião, e
pelo lado técnico da coisa, você não pode alterar o questionário depois de iniciada a pesquisa
- mesmo se desprezar os resultados já conseguidos, isso é distorcer o universo.)
Saúde
37 - O quanto você gosta de café?
1-3 8 26%
3-5 6 19%
5-8 4 13%
Gosto Muito 12 39%
38 - O quanto você bebe?
Expresso (25ml - 50ml)
0 13 42%
1 3 10%
2 5 16%
3 2 6%
5 1 3%
Xícara (150 ml - 200 ml)
0 11 35%
1 3 10%
2 3 10%
3 2 6%
4 2 6%
Caneca (~300 ml)
0 16 52%
1 1 3%
2 4 13%
3 0 0%
4 2 6%
39 - Marque as bebidas com cafeíná você bebe diariamente e a proporção diária:
Chá verde
0 21 68%
1 4 13%
2 1 3%
Refrigerante a base de cola (lata)
0 14 45%
1 5 16%
2 1 3%
3 3 10%
4 0 0%
5 1 3%
6 1 3%
Chá mate
0 17 55%
1 6 19%
4 1 3%
Chimarrão
0 19 61%
1 2 6%
2 1 3%
Bebida Energética (250 ml)
0 23 74%
1 0 0%
2 1 3%
40 - Você faz uso de algum medicamento para melhorar seu desempenho?
ritalina 1 3%
pílulas de cafeíná 0 0%
anfetaminas 0 0%
Other ([Stagivile],
[não])
2 6%
41 - Em média quantas horas você dorme por dia?
4-5 2 6%
5-6 6 19%
6-7 7 23%
7-8 9 29%
8-9 6 19%
9-10 1 3%
42 - Quantas horas você trabalha por semana?
21-30 3 10%
31-40 12 39%
41-50 14 45%
51-60 1 3%
71-80 1 3%
43 - Quantas horas de atividades físicas você pratica por semana?
0 9 29%
1 3 10%
2 4 13%
3 3 10%
4 5 16%
5 1 3%
6 3 10%
7 1 3%
10 2 6%
44 - Você possui alguma doença atribuída a exercício da profissão?
Sim 3 10%
Não 28 90%
Não quero responder! 0 0%
45 - Você se considera feliz com a sua atual carreira?
Sim 24 77%
Não 6 19%
Não quero responder! 1 3%
Analise do processo de coleta
A maior parte da amostra foi obtida através de um post no reedit [http://www.reddit.com/r/brasil/comments/2isfbd/question%C3%A1rio_profissional_de_ti_desenvolvedor_de/] como demostrado no gráfico abaixo:
Possíveis relações:Idade x Tempo de atuaçãoIdade Tempo de atuação Entrada no Mercado
19 1 18
21 1 20
21 3 18
22 1 21
22 1 21
23 2 21
24 2 22
24 3 21
25 3 22
25 6 19
26 9 17
27 4 23
28 6 22
28 5 23
28 4 24
29 2 27
29 5 24
29 1 28
30 8 22
30 5 25
31 7 24
31 15 16
31 13 18
31 8 23
32 10 22
32 15 17
32 14 18
33 10 23
34 15 19
37 5 32
38 5 33 A idade média de entrada no mercado é de 22.03 anosMedia de tempo de atuação no mercado: 6.10 anosMedia da Idade da amostra 28.13
Escolaridade X DesenvolvedoresEscolaridade Número de desenvolvedores Porcentagem
Ensino Médio 2 10.526%
Ensino Superior 13 68.421%
Especialização 3 15.789%
Mestrado 1 5.263%
Total de desenvolvedores: 19Observação: para esta contagem foi levado em conta a amostra que respondeu
“Desenvolvedor de Softwares/Web Designer/DB Admin” como cargo
Desenvolvedores X IdiomasIdioma Número de desenvolvedores Porcentagem
Português 19 100%
Inglês 19 100%
Espanhol 3 15.78%
Japonês 1 5.26%
Total de desenvolvedores: 19Observação: para esta contagem foi levado em conta a amostra que respondeu “Desenvolvedor de Softwares/Web Designer/DB Admin” como cargo
Escolaridade X IdiomasEnsino Médio (3 indivíduos)
Idioma Número de desenvolvedores Porcentagem
Português 3 100%
Inglês 3 100%
Espanhol 1 33.33%
Ensono Superior
Idioma Número de desenvolvedores Porcentagem
Português 22 100%
Inglês 21 95.45%
Espanhol 7 31.81%
Japonês 3 13.63%
Francês 2 9.09%
Alemão 2 9.09%
Especialização (4 indivíduos)
Idioma Número de desenvolvedores Porcentagem
Português 4 100%
Inglês 4 100%
Mestrado (1 individuo)
Idioma Número de desenvolvedores Porcentagem
Português 1 100%
Inglês 1 100%
Tempo de atuação X Tempo de ProgramaçãoTempo de atuação Tempo de Programação Diferença
3 1 2
1 1 0
1 1 0
1 1 0
1 4 -3
1 4 -3
9 4 5
5 5 0
4 5 -1
5 5 0
10 5 5
3 6 -3
2 7 -5
7 7 0
2 7 -5
6 7 -1
3 8 -5
8 8 0
5 10 -5
5 10 -5
10 14 -4
15 15 0
4 15 -11
14 15 -1
6 15 -9
8 16 -8
5 20 -15
A amostra consiste de 27 indivíduos que programam. A média geral de tempo de experiência com programação antes da entrada no mercado é de -2.57 anos.11.11% (3) da amostra aprendeu a programar após a entrada no mercado29.63% (8) da amostra aprendeu a programar juntamente, ou recentemente a entrada no
mercado59.26% (16) da amostra já tinha aprendido a programar antes de entrar no mercado sendo o intervalo médio desta população de (5.25) anos
Uso de ferramenta de composição de interface X Tempo de atuaçãoUsa de ferramenta de composição de interface
Número de indivíduos Média de tempo de atuação
Sim 14 6.14 anos
Não 15 5.73 anos
Uso de ferramenta de composição de interface X Idade
Usa de ferramenta de composição de interface
Número de indivíduos Média de idade
Sim 14 28.64 anos
Não 15 27.4 anos
Tamanho projeto X metodologia ágil
Pequenos (- 1000 horas) 13 indivíduosFrequência do uso de ágil Número de Indivíduos Porcentagem
Nunca 4 30.77%
Raramente 3 23.08%
Frequentemente 3 23.08%
Sempre 2 15.38%
Metodologia ágil? 1 7.69%
Médios (1000 - 3000 horas) 9 individuosFrequência do uso de ágil Número de Indivíduos Porcentagem
Nunca 0 0%
Raramente 2 22.22%
Frequentemente 6 66.67%
Sempre 1 11.11%
Metodologia ágil? 0 0%
Grandes (+ 3000 horas) 9 indivíduos Frequência do uso de ágil Número de Indivíduos Porcentagem
Nunca 3 33.33%
Raramente 3 33.33%
Frequentemente 3 33.33%
Sempre 0 0%
Metodologia ágil? 0 0%
Desenvolvedor X Café Consumo
Unidade Quantidade(ml)/Desenvolvedor
Expresso (25ml - 50ml) 0.36842105263
Xícara (150 ml - 200 ml) 0.84210526315
Caneca (~300 ml) 0.57894736842
Desenvolvedor X Café gosto
Gosta de café Número de indivíduos
1-3 7
3-5 3
5-8 2
Gosto muito 6
Desenvolvedor X Sono
Tempo Dormindo por dia Número de indivíduos
4-5 1
5-6 3
6-7 4
7-8 5
8-9 5
9-10 1
Importância dinheiro X desenvolvedor
Importância do fator financeiro para escolha da carreira
Número de indivíduos
1-3 11
3-5 2
5-8 6
8-10 0
Atividade física X desenvolvedor
Em média os desenvolvedores de software da amostra praticam 2.95 horas de atividades físicas por semana.
Estágio X preparação
Participação em projetos ou estágios
Preparado para o mercado SIM NÃO
SIM 13 (72.22%) 8 (88.89%)
NÃO 5 (27.78%) 1 (11.11%)
27 indivíduos foram levados em consideração para esta amostra
Consumo de caféNúmero de doses Mínimo Média Máximo
24 25 ml X 50 ml
23 150 ml X 200 ml
17 X 300 ml X
AnaliseNúmero de doses Total Mínimo Total Média Total Máximo
24 600 ml X 1200 ml
23 3450 ml X 4600 ml
17 X 5100 ml X
Total 4050 ml 5100 ml 5800 ml(Total mínimo + Total médio)/ = Consumo mínimo de café por profissional(4050 + 5100)/31 = 295.161 ml
((Total mínimo + Total máximo) /2 + Total médio)/ número de profissionais = Consumo médio de café por profissional((4050+5800)/2 + 5100)/31 = 323.387 ml
(Total máximo + Total médio)/ = Consumo máximo de café por profissional( 5800 + 5100)/31 = 351.612 ml
APÊNDICE D
APENDICE D – METODOLOGIAS E TÉCNICAS PARA O ESTUDO DA LÍNGUA INGLESA
O estudo de uma língua pode ser um processo exitante e eficiente, ou penoso e inútil
(CRUSE, PECK, 2011, p.7), alguns dos fatores que influenciam essa distinção são a
motivação, metodologia e o tempo praticado (CRUSE, PECK, 2011, p.7). A redução da
ineficiência e da penosidade no processo de aprendizagem de um idioma é um tópico de
extrema importância, visto que, de acordo com ASHER, apenas cerca de 5% dos alunos que
começam a estudar uma língua usando meios tradicionais continuam até obter fluência
(ASHER, 2014, p.1) . O restante, aproximadamente 95%, desistem muitas vezes criando um
parecer de incapacidade de aquisição do idioma visado (ASHER, 2014, p.1).
Um dos grandes diferenciais na aquisição de uma segunda língua é a metodologia
usada. As metodologias usualmente tendem-se a se basear em uma hipótese linguística. De
acordo com KRASHEN há cinco principais hipóteses sobre a aquisição de uma segunda
língua (KRASHEN, 2009), sendo elas:
• Acquisition-learning distinction – similar ao processo de aprendizagem de linguagem
de uma criança, defende que a aquisição é um processo subconsciente (KRASHEN,
2009, p.17), não há consciência da aquisição da linguagem apenas de seu uso.
KRASHEN cita que não há consciência implícita do uso de regras gramaticais, apenas
há uma sensação de “certo” (KRASHEN, 2009, p.17).
• Natural order hypothesis – a aquisição de uma linguagem tende a aquisição de certas
estruturas gramaticais cedo, e outras mais tarde (KRASHEN, 2009, p.19).
• Monitor hypothesis – postula que aquisição e aprendizado são empregados de um
modo bem especifico (KRASHEN, 2009, p.22). A aquisição “inicia” a dicção que é
responsável pela fluência (KRASHEN, 2009, p.22), o aprendizado tem a função de
monitorar, fazendo mudanças na dicção existente (KRASHEN, 2009, p.22),
implicando na redução da importância do aprendizado consciente (KRASHEN, 2009,
p.22).
• Input hypothesis – vai contra a metodologia tradicionalmente usada, proposta por
HATCH que consiste do aprendizado da estrutura e posterior uso prático através da
comunicação, que resultaria na fluência (HATCH, 1978 apud KRASHEN, 2009, p.27-
28). A Input hypothesis afirma que a aprendizagem começa com a obtenção do
significado que resulta no aprendizado da estrutura (KRASHEN, 2009, p.27-28).
• Affective filter hypothesis – define que o aprendizado de uma segunda linguagem é
gerido por filtros afetivos (KRASHEN, 2009, p.37-38). Esses filtros são influenciados
por fatores como diversão e surpresa, e KRASHEN classifica esses fatores em três
categorias: motivação, autoconfiança e baixa ansiedade (KRASHEN, 2009, p.37-38),
Além das hipóteses cognitivas, recomenda-se que a metodologia leve em
consideração fatores cognitivos do aprendizado linguístico. Recomenda-se a busca pelo
significado dos vocábulos do idioma almejado, defendida também por ASHER, que considera
a compreensão um fator fundamental para o aprendizado de um idioma (ASHER, 2014, p.2),
auxiliaria na distinção idiomática e consequente memorização do vocábulo, visto que o
mesmo seria atrelado a um conceito e não como um “sinônimo” de uma palavra. A associação
de vocábulos como tradução tem sua ineficiência reforçada por ASHER quando o mesmo cita
que aspectos neuro-cognitivos da interpretação linguística, impediriam o armazenamento de
vocábulos na memória de longo prazo (ASHER, 2014, p.3)
Um fator primordial na aquisição de uma linguagem é o seu uso, THOMSON sugere
que o uso prático da linguagem é o fator dominante na aquisição de uma língua (THOMSON,
1993, p.4), sugere também dois métodos de prática de uma língua, o uso para expressar ideias
e para entender ideias de outros indivíduos (THOMSON, 1993, p.4). A importância do
conceito do uso prático da linguagem é reforçado pela pesquisa realizada por SULZBERGER
que sugere que a frequente exposição a padrões de sons é a melhor maneira de aprender uma
língua, mesmo que estes não sejam compreendidos (SULZBERGER apud PHYSORG.COM,
2009).
Uma boa metodologia deve empregar técnicas e estratégias assistivas. Assim se
baseando nos pontos levantados por THOMSON e pela pesquisa de SULZBERGER, já
citados, sugere-se o consumo de mídias associadas com o idioma foco. Associando também
estes conceitos com o a redução da penosidade citada por CRUSE e PECK e a hipótese
linguística Affective filter hypothesis apresentada por KRASHEN propõe-se a migração de
hobbies para a linguagem foco. Estratégia que estaria também de acordo com os métodos de
redução de carga penosa na aquisição de linguagem propostos por HAMAYAN, que seriam
tornar a linguagem mais relevante no cotidiano, ampliação do interesse e uso da linguagem de
forma autentica (HAMAYAN, 2009).
Segundo NOONAN (2012), o estudo direto da gramática é inútil, aponta que a
gramática é aprendida naturalmente através da compreensão do recebimento de informações e
interação com outros indivíduos (NOONAN, 2012, p.18). NOONAN sugere que o estudo em
gramática deve ser focado em duas áreas, auxiliar a compreensão da informação recebida e
desenvolver a capacidade de identificar a gramática na informação recebida (NOONAN,
2012, p.18).
A estratégia de aprendizado sugerida por NOONA visa o vasto consumo de mídias
compreensíveis (NOONAN, 2012, p.6), e a comunicação com falantes do idioma alvo
(NOONAN, 2012, p.6). O que é reforçado por HAMAYAN, que aponta que o estudo de uma
língua é mais eficiente quando acompanhadas de comunicação e interação social
(HAMAYAN, 2012), e o suporte do aprendizado com o uso de gramática objetivando o
esclarecimento e compreensão do idioma (NOONAN, 2012, p.6).
Em relação a práticas de memorização, GASS aconselha a repetição para ajudar na
fixação de memória de longo prazo, prática que pode ser auxiliada com o uso de flashcards ou
cartões de memorização (GASS, 2014)7. Se sugere o website Memrise [www.memrise.com]
como ferramenta no uso técnica de flashcards pois este faz uso de aspectos de cognição para
auxiliar na memorização (MEMRISE, 2014)8. GASS sugere também que o estudo dividido
em blocos de 30 minutos de minutos, seriam mais eficientes (GASS, 2014), evidenciando
também a importância do estudo contínuo do idioma.
7 GASS S.. How to Learn a Foreign Language. Newnan Advising Center - The University Of Michigan, Disponível em: <http://www.lsa.umich.edu/advising/academicsupport/strategiesforsuccess/coursespecificstrategies/howtolearnaforeignlanguage> Acessado em: 11 mai de 2014
8 MEMRISE. Memrise scientific background; Disponível em: <http://www.memrise.com/about/> Acessado em: 28 mai de 2014