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