universidade regional integrada do alto uruguai e das missões

Transcrição

universidade regional integrada do alto uruguai e das missões
UNIVERSIDADE REGIONAL INTEGRADA DO ALTO URUGUAI E DAS MISSÕES
CAMPUS SANTIAGO
DEPARTAMENTO DE ENGENHARIAS E CIÊNCIA DA COMPUTAÇÃO
JONAS MAYER FERREIRA
PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DE
DESENVOLVIMENTO DE SOFTWARE
Santiago/RS
2014
JONAS MAYER FERREIRA
PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DE
DESENVOLVIMENTO DE SOFTWARE
Monografia apresentada como requisito para
conclusão do curso de Ciência da Computação
pela Universidade Regional Integrada do Alto
Uruguai e das Missões.
Orientador:
Prof. Luiz Henrique Rauber Rodrigues
Coorientadora:
Prof. Lucieli Tolfo Beque Guerra
Santiago
2014
JONAS MAYER FERREIRA
PERSPECTIVAS SOBRE A FORMAÇÃO E A CARREIRA DE PROFISSIONAIS DE
DESENVOLVIMENTO DE SOFTWARE
Monografia apresentada como requisito parcial
para conclusão do curso de Ciência da
Computação pela Universidade Regional
Integrada do Alto Uruguai e das Missões
Campus 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 da
Computação, Sistemas de Informação e Engenharia de Software, abrangem uma área de amplo
espectro. Além disso os cursos da área ainda tem de lidar com um dilema, preparar o aluno para o
mercado de trabalho ou seguir uma abordagem de ensino mais acadêmica. Consequentemente, em
decorrência deste contexto e devido a complexidade e amplitude da área, o recém-graduado não
se encontra capacitado para atender os requisitos irrealistas impostos pelo mercado. De forma
semelhante, a amplitude da área por vezes resulta na confusão do graduando, que muitas vezes
não sabe em que campo se especializar durante a graduação e que setor seguir após a conclusão da
mesma. A falta de orientação, devido a escassez de informação formal fidedigna e acessível sobre
o mercado, aspectos da profissão e as competências e habilidades requeridas, bem como a
carência de estudos sobre aspectos de desenvolvimento de software aplicados que buscam a
formação prática dos acadêmicos, colaboram para a falta de profissionais no setor. Ciente dessa
necessidade foi considerado um estudo com o propósito de orientar os alunos sobre aspectos da
graduação, da formação e da carreira no setor de TI, informá-los também sobre seu papel como
cientistas e elucidar habilidades e competências necessárias para a atuação no mercado do
trabalho. O estudo se propõe também a fornecer uma visão sobre aspectos do desenvolvimento no
mundo real através de pesquisas bibliográficas, da análise de dados coletados a partir da aplicação
de questionários em profissionais do setor e de perspectivas sobre a experimentação da aplicação
desses 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 addition
courses in the area still have to deal with a dilemma, prepare the student to job market or take an
approach more academic. Consequently, due the context and the field amplitude, the just
graduated student are not qualified to meet the unrealistic requirements imposed by the market. In
a similar way, the field amplitude results in the confusion of the undergraduate student, that often
do not know what filed which fields to specialize during the course and witch sector follow after
the conclusion of it. The lack of orientation, due to lack of reliable and accessible formal
information about the market, aspects of the profession and the necessary skills as well as the
lack 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 in
order to guide students on aspects of graduation, training and career in the IT sector, also inform
them about their role as scientists and elucidate skills and competencies necessary for the
performance in the job market. The study also proposes to provide insight into aspects of
development in the real world through bibliographical research, analysis of data collected from
the application of a survey in professionals of the sector and perspectives of the implementation of
these aspects in projects. This way the study hopes assist in the formation of academics in IT and
guidance 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
14
estudante 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.
15
1.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.
16
1.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.
17
2 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 atividadefim 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
18
cabe 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).
19
1.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).
20
1.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
21
diferenciar 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.
22
2 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
23
um 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
24
ou 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
25
pelo 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.
26
2.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.
27
Apesar 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. Sugerese 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,
29
um 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
30
obter 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
Figura 1: Estilos de notas baseando em (ASC, 2014)
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
32
familiarizaçã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
33
objetivos 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
34
conseguem 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
35
3 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
36
relacionados;
•
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
Figura 2: Relacionamento entre problemas práticos e pesquisa (adaptado WAYNE,
2003, p.53)
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
38
seguinte 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
39
da 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).
40
4. 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
Figura 3: Representação da hierarquia de um
projeto open source (adaptada KAPUR, 2010,
p.65)
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.
42
4.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).
43
4.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.
44
4.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
•
Controle de Versão – Permite aos desenvolvedores gerenciar as mudanças no
público.
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.
45
5 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.
46
5.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).
48
5.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.
Figura 4: Ciclo de TDD adaptado de (KOSKELA, 2007, p.16)
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.”
49
5.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
50
Continuous 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
51
em 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).
52
6 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ãoprogramá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
53
administrativa 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.
54
6.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
55
sem 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
56
constante 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.
57
O 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.
58
Apó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
59
A 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:
5
•
Seção para contato
•
Sumário profissional
•
Experiência de trabalho
•
Educação
•
Conquistas fora do trabalho (opcional)
•
Lista de habilidades e competências
phone screen – espécie de entrevista realizada por videoconferência, frequentemente acompanhada de testes
técnicos.
60
6.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
61
contratado (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
63
vezes 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.
64
7. 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
66
graduaçã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
67
software – 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.
68
8. 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
69
CONCLUSÃ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.
70
No 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/> Acessado
em: 26 mai de 2014
AMERICAN COUNCIL ON THE TEACHING OF FOREIGN LANGUAGES. ACTFL
Proficiency 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. Scientific
American Mind, 2010.
ASC - Academic Skills Center. Note Taking System, California Polytechnic State University
San
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 de
2014.
ASSOCIAÇÃO BRASILEIRA DAS EMPRESAS DE SOFTWARE - ABES. Mercado
Brasileiro 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 – THE
JOIN TASK FORCE ON COMPUTING CURRICULA. Computer Science Curricula
2013: Curriculum Guidelines for Undergraduate Degree Programs In Computer Science. 20
Dez. 2013
ATWOOD, J. Effective Programing: More than writing code, 2012.
72
BARGH, 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 and
students. 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 in
Mathematics and Science Teaching, in press, 1998
BERNDTSSON, M.; et. al. Thesis Projects: A guide for Students in Computer Science and
information 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 - Technoscience
Studies. 2006.
BRANAS, P. AngularJS Essentials, Packt Publishing: 2014.
BRICE, C., SMITH A. Effects of caffeine on mood and performance: a study of realistic
consumption. 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 Strategies
Instruction in Higher Education, Georgetown University George Washington University
Center For Applied Linguistics, 2010.
CHAMOT A.; et. al..Developing Autonomy in Language Learners: Learning Strategies
Instruction in Higher Education, Georgetown University George Washington University
73
Center 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-profissionalde-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 in
teaching Polish as a foreign language. University of Warsaw ,Poland. V International
Conference ICT for Language Learning, 2012.
DEZURE D.; et. al.. Research on Student Notetaking: Implications for Faculty and
Graduate Student Instructors, CRLT Occasional Papers, 2001, University of MIchigan.
DICTONARY.COM.
Computer
Science
Definition;
Disponível
<http://dictionary.cambridge.org/us/dictionary/business-english/computer-science?
q=computer+sciencet> Acessado em: 5 mai. 2014
em:
DODIG-CRNKOVIC, G. Scientific methods in computer science. Proceedings of the
Conference for the Promotion of Research in IT at New Universities and at University
Colleges 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 da
Computação: um guia de utilização de fóruns para diagnóstico e aprimoramento da prática
docente. 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 em
Engenharia de Computação: uma reflexão. III Fórum de Educação em Engenharia de
74
Software, 2010
FLOWER,
M.
Continuous
Integration,
2006.
<http://www.martinfowler.com/articles/continuousIntegration.html>
Disponível
em:
FOGEL, K. Producing Open Source Software: How to Run a Successful Free Software
Project,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-specific
mortality. 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 Graduates
for an Increasingly Competitive Global Environment, Georgia Tech College of
Computting,
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 Of
Michigan,
Disponível
em:
<http://www.lsa.umich.edu/advising/academicsupport/strategiesforsuccess/coursespecificstrat
egies/howtolearnaforeignlanguage> Acessado em: 11 mai de 2014
GENTRY J.. Guide to Business Gaming and Experiential Learning, Association for
Business Simulation and Experiential Learning (ABSEL), 1990.
GRAY L.. No Hypoxic Heroes, Please! Biological Limits on Cowboy Programmers, 1998, C
ROSSTALK The Journal of Defense Software Engineering p. 33-34.
GREEN, B. ; SESHADRI S.. AngularJS: Up and Running, O'Reilly Media, 2014.
75
HAMAYAN E. ; Making language learning more fun: Integrating language and content in
the classroom, SHARE Conference, Buenos Aires, July 2009
HEIGER G.. Duolingo - How Gamified Language Learning Benefits The Internet And
Humanity. 2012. Disponível em: <http://www.enterprise-gamification.com/index.php?
option=com_content&view=article&id=91:duolingo-how-gamified-language-learningbenefits-the-internet-and-humanity&catid=13&Itemid=17&lang=de> Acessado em: 11 mai de
2014
HOWARD, C.. Beyond the Classroom, 2009.
HOWE M.; et. al. Prolonged Dopamine Signalling in Striatum Signals Proximity and
Value
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
<http://www.howtostudy.com/create-a-study-plan/> Acessado em: 23 jun. de 2014
em:
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 Memorial
Award 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/2014_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.
76
KATHRYN, W., et al. Coffee consumption and prostate cancer risk and progression in
the 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 other
risk factors for type 2 diabetes: a clinical trial. The American journal of clinical nutrition
91.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. 6768. 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 of
Southern 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 of
Psychology 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 performance
and mood. Psychopharmacology 92.3 (1987): 308-312.
77
LINDSAY, 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 Teaching
Centrer 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 software
companies 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.: Manning
Publications, 2013.
MCCULLER, P. How to Recruit and Hire Great Software Engineers. 2012.
MEMERISE.
Memrise
scientific
background.
<http://www.memrise.com/about/> Acessado em: 28 mai de 2014
Disponível
em:
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 de
2001 - Orientações sobre os Cursos Superiores de Tecnologia - Formação de Tecnólogo.
78
Disponível em: <http://portal.mec.gov.br/cne/arquivos/pdf/CES0436.pdf> Acessado em: 02
mai. 2014
MINISTÈRIO DA EDUCAÇÂO. Parecer CNE/CES nº 136/2012, aprovado em 8 de março
de 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 Pragmatic
Programmers: 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ível
em:<http://www.nasa.gov/audience/foreducators/plantgrowth/reference/Scientific_Method.ht
ml#.U8Vv75S8qW0> Acessado em: 15 jul 2014
NATIONAL COUNCIL OF STATE SUPERVISORS FOR LANGUAGES. A Rationale For
Foreign Language Education: A Position Paper of The National Council of State
Supervisors 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 School
Pupils' 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-suaprimeira-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 wish
they'd learned sooner. HarperCollins e-books, 2007.
PHYSORG.COM. New study may revolutionize language learning. 2009. Disponível
em:<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 and
etiquette 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 Arundel
Community 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: exploring
expectations, achievements and the future, Italy, 2008.
ROTHMAN, J. Manage it!: your guide to modern, pragmatic project management. Pragmatic
Bookshelf, 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 and
hydration: a review of benefits and risks. Nutrition Bulletin 33.1 (2008): 15-25.
80
SADALAGE, P., FOWLER M. NoSQL distilled: a brief guide to the emerging world of
polyglot persistence. Pearson Education, 2012.
SCHLITTMEIER S.; HELLBRÜCK J.. Background music as noise abatement in openplan offices: A laboratory study on performance effects and subjective preferences. Applied
Cognitive Psychology 2009, 2008.
SHAKYA M..The Analysis of Algorithm , Data Structures and Algorithms, 2008. Disponível
em: <http://ku.edu.np/cse/faculty/manoj/dsa/Algorithm.pdf>
SILOR A.. Effectivenes of Classical Music as Background in the Story Video
Comprehension 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ível
em: <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 the
pharmacokinetics of caffeine. The American journal of cardiology 56.15 (1985): 958-963.
SOCIEDADE BRASILEIRA DE COMPUTAÇÂO. Currículo de Referência da SBC para
Cursos de Graduação em Bacharelado em Ciência da Computação e Engenharia de
Computaçã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: 24
mar 2014
SOCIEDADE BRASILEIRA DE COMPUTAÇÂO. Currículo de Referência da SBC para
Cursos de Graduação em Computação e Informática. 2003. Disponível
em:<http://www.sbc.org.br/index.php?
option=com_jdownloads&Itemid=195&task=finish&cid=185&catid=36> . Acessado em: 24
mar 2014
SOMASUNDARAM, R.. Git: Version control for everyone. Packt Publishing Ltd, 2013.
81
SUBRAMANIAM, V. HUNT A. Practices of an Agile Developer. Pragmatic Bookshelf,
2006.
THOMSON G. Kick-starting Your Language Learning: Becoming a Basic Speaker
Through Fun and Games Inside a Secure Nest, 1993.
THOUGHTWORKS.
Technology
Radar
,
2014.
Disponível
<http://thoughtworks.fileburst.com/assets/technology-radar-july-2014-en.pdf>
em:
THUNG, Ferdian, et al. Network structure of social coding in GitHub. Software
Maintenance and Reengineering (CSMR), 2013 17th European Conference on. IEEE, 2013.
TRAINOR L.; et. al.. Understanding the Benefits of Musical Training: Effects on
Oscillatory 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 De
Ciê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 Em
Sistemas 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 a
developmental 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.
82
WAYNE, 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 for
Testers and Developers”, 2012.
ZIMAN, J, The scientist as autodidact. The Passion to Learn: An Inquiry Into
Autodidactism: 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 TCC
Este 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/2014
Check 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 Continuous
Delivery (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 primordial
Mark 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-Adequados
Mark 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íticas
Por favor informe suas sugestões e/ou críticas para o questionário.
37. Se deseja receber uma cópia do trabalho de
conclusã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 trabalho
Mark only one oval per row.
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Expresso (25ml 50ml)
Xícara (150 ml 200 ml)
Caneca (~300
ml)
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
Chá verde
Refrigerante a
base de cola (lata)
Chá mate
Chimarrão
Bebida 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!
11
12
+13
+15
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
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!
Powered by
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 0
0%
Dados
Analista de Segurança da 0
0%
Informação
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
3%
1
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
24 - Qual a instituição?
FAJ
Universidade Metodista
URI E IMED
Senac
UNG
Furb
UNISINOS
UEM
PUC/MG
0%
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 1
3%
Segurança
Gerenciamento
de 0
0%
Sistemas Inteligentes
2
6%
Redes e Comunicações
1
3%
Sistemas Operacionais
1
3%
Desenvolvimento baseado em 0
0%
Informações
Plataforma
Computação
Paralela
e 2
6%
Distribuída
Linguagens de Programação
Fundamentos
9
de 0
29%
0%
Desenvolvimento de Software
Engenharia de Software
4
13%
Fundamentos de Sistemas
0
0%
Prática 0
0%
Temas
Sociais
e
Profissional
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 2
6%
Segurança
Gerenciamento
de 0
0%
Sistemas Inteligentes
0
0%
Redes e Comunicações
6
19%
Sistemas Operacionais
0
0%
Desenvolvimento baseado em 1
3%
Informações
Plataforma
Computação
Paralela
e 1
3%
0
0%
de 0
0%
Distribuída
Linguagens de Programação
Fundamentos
Desenvolvimento de Software
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
Não quero responder 2
19%
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 9
29%
práticas,...)
Soft skills (ética, atitude positiva, comunicação, 3
10%
liderança,... )
Conhecimentos
mais
atualizados
sobre 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%
metodologias
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], 2
6%
[não])
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
Não
28 90%
Não quero responder! 0
10%
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ção
Idade
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 anos
Media de tempo de atuação no mercado: 6.10 anos
Media da Idade da amostra 28.13
Escolaridade X Desenvolvedores
Escolaridade
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: 19
Observação: para esta contagem foi levado em conta a amostra que respondeu
“Desenvolvedor de
Softwares/Web Designer/DB Admin” como cargo
Desenvolvedores X Idiomas
Idioma
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: 19
Observação: para esta contagem foi levado em conta a amostra que respondeu
“Desenvolvedor de
Softwares/Web Designer/DB Admin” como cargo
Escolaridade X Idiomas
Ensino Médio (3 indivíduos)
Idioma
Número de desenvolvedores
Porcentagem
Português
3
100%
Inglês
3
100%
Espanhol
1
33.33%
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%
Idioma
Número de desenvolvedores
Porcentagem
Português
4
100%
Inglês
4
100%
Número de desenvolvedores
Porcentagem
Ensono Superior
Especialização (4 indivíduos)
Mestrado (1 individuo)
Idioma
Português
1
100%
Inglês
1
100%
Tempo de atuação X Tempo de Programação
Tempo 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 mercado
29.63% (8) da amostra aprendeu a programar juntamente, ou recentemente a entrada no
mercado
59.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ção
Usa de ferramenta de
Número de indivíduos
Média de tempo de atuação
composição de interface
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íduos
Frequê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 individuos
Frequê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
Analise
Nú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.2728). 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
8
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/howtolea
rnaforeignlanguage> Acessado em: 11 mai de 2014
MEMRISE. Memrise scientific background; Disponível em: <http://www.memrise.com/about/> Acessado
em: 28 mai de 2014

Documentos relacionados

computação em evolução

computação em evolução Abstract. This paper presents a new tool in computing the Cloud Computing or Computing in the clouds, the idea is that wherever the user be, using only the Internet, access them with the same ease ...

Leia mais