Leia online o Livro gratuito “Fundamentos da Programação de Computadores com C #

Prefácio

Se você quiser levar a programação a sério, e você se deparar com o livro certo. Você pode fazer seus primeiros passos na programação. Ele lhe dará um começo de vôo para sua longa jornada para aprender o moderno na linguagens de programação e tecnologias de desenvolvimento de software. Este livro ensina os princípios e conceitos de programação fundamentais, que não mudaram significativamente nos últimos 15 anos.

Não hesite em ler este livro, mesmo que C # não é o idioma que você gostaria de prosseguir. Seja qual for o idioma que você passar para o conhecimento damos-lhe aqui vai ficar, porque este livro vai ensinar você a pensar como programadores. Vamos mostrar-lhe e ensiná-lo a escrever programas para resolver problemas de algoritmos práticos, formam as habilidades em você para vir acima com (e implementar) algoritmos e usar várias estruturas de dados.

Por mais improvável que possa parecer para você, os princípios básicos de escrever programas de computador não mudaram toda que muito nos últimos 15 anos. As linguagens de programação mudar, as tecnologias estão sendo modernizados, ambientes de desenvolvimento integrado ficar cada vez mais avançada, mas os princípios fundamentais da programação permanecem os mesmos. Quando os iniciantes aprender a pensar através de algoritmos, e depois aprender a dividir um problema instintivamente em uma série de passos para resolvê-lo, bem como quando eles aprendem a selecionar as estruturas de dados apropriadas e escrever código de programação de alta qualidade que é quando eles se tornam programadores . Depois de adquirir essas habilidades, você pode facilmente aprender novas linguagens e diversas tecnologias – como programação Web, HTML5 e JavaScript, desenvolvimento móvel, bancos de dados e SQL, XML, REST, ASP.NET, Flash, Java EE, Python, Ruby e centenas mais .

Sobre o livro

Este livro é projetado especificamente para ensinar você a pensar como um programador ea linguagem C # é apenas uma ferramenta que pode ser substituído por quaisquer outras linguagens de programação modernas, como Java, C ++, PHP ou Python. Este é um livro sobre programação, não um livro sobre C #!

Por favor, desculpe-nos para o erro na tradução!

Este livro foi originalmente escrito em língua búlgara por uma grande equipe de engenheiros de software voluntário e posteriormente traduzido para o Inglês. Ninguém entre os autores, tradutores, editores e outros colaboradores é um falante nativo de Inglês de modo que você pode encontrar muitos erros e tradução imprecisa Por favor, desculpe-nos mais de 70 pessoas participaram neste projecto (principalmente búlgaros):.! Autores, editores, tradutores, revisores , relatou o bug, etc, e ainda a qualidade pode ser melhorada. Toda a equipe felicita-lo com sua escolha para ler este livro e que acredita que o conteúdo é mais importante que os pequenos erros e problemas que você pode encontrar. Apreciar!

A quem é este livro destina?

Este livro é o mais adequado para iniciantes. Ele é destinado a qualquer pessoa que até agora não se envolveu seriamente na programação e gostaria de começar a fazê-lo. Este livro começa a partir do zero e introduz-lo passo a passo para os fundamentos da programação. Não vai te ensinar sobre absolutamente tudo o que precisa para se tornar um engenheiro de software e trabalha em uma empresa de software, mas vai estabelecer as bases sobre a qual construir o conhecimento e as habilidades tecnológicas, e através deles você vai ser capaz de transformar a programação em sua profissão.

Se você nunca tenha escrito um programa de computador, não se preocupe. Existe sempre uma primeira vez. Neste livro, vamos ensiná-lo a programar a partir do zero. Nós não esperamos qualquer conhecimento ou habilidades anterior. Tudo que você precisa são alguns conhecimentos de informática básica e um desejo de assumir programação. O resto você vai aprender com o livro.

Se você já pode escrever programas simples ou se você estudou programação na escola ou na faculdade, ou que você tenha codificado com os amigos, não assuma que você sabe tudo! Leia este livro e você vai se tornar ciente de quantas coisas que você perdeu. Este livro é realmente para iniciantes, mas ensina conceitos e habilidades que mesmo programadores profissionais experientes falta. As empresas de software estão cheias com uma quantidade chocante de amadores autodidatas que, apesar de ter programado em um salário por anos, não têm nenhuma compreensão dos fundamentos da programação e não têm idéia do que uma tabela hash é, como funciona o polimorfismo e como trabalhar com operações bit a bit. Não ser como eles! Aprender as noções básicas de programação em primeiro lugar e, em seguida, as tecnologias. Caso contrário, você corre o risco de ter suas habilidades de programação aleijado, mais ou menos, durante anos, se não para a vida.

Se, por outro lado, você tem experiência em programação, examinar este livro em detalhes e ver se você está familiarizado com todos os assuntos que abordamos, a fim de decidir se é para você ou não. Tome um olhar mais atento especialmente nos capítulos ” Estruturas de Dados e Algoritmos Complexidade “, ” Princípios de programação orientada a objetos “, ” Metodologia de Resolução de Problemas ” e ” código de programação de alta qualidade “. É muito provável que, mesmo se você tem vários anos de experiência, você pode não ser capaz de trabalhar bem com estruturas de dados; que você pode não ser capaz de avaliar a complexidade de um algoritmo; você pode não ter dominado em profundidade os conceitos de programação orientada a objetos (incluindo UML e padrões de projeto); e você pode não estar familiarizado com as melhores práticas para escrever código de programação de alta qualidade. Estes são temas muito importantes que não são cobertos em todos os livros sobre programação, por isso não ignorá-los!

Conhecimento inicial não é necessário!

Neste livro nós não esperamos nenhum conhecimento anterior de programação por parte dos leitores. Não é necessário para você ter tecnologia da informação estudada ou ciência da computação, a fim de ler e compreender o conteúdo do livro. O livro começa a partir do zero e, gradualmente, você fica envolvido na programação. Todos os termos técnicos que você vai encontrar terão sido explicado de antemão e não é necessário para que você possa conhecê-los de outras fontes. Se você não sabe o que um compilador, depurador, ambiente de desenvolvimento integrado, variável, array, loop, console, corda, estrutura de dados, o algoritmo, a complexidade do algoritmo, classe ou objeto são, não se assuste. A partir deste livro você vai aprender todos esses termos e muitos mais, e gradualmente se acostumar a usá-los constantemente em seu trabalho diário. Basta ler o livro de forma consistente e fazer os exercícios.

Certamente, se depois de tudo você tem conhecimento prévio em tecnologias de informática e de informação, eles vão por todos os meios ser de utilidade para você. Se, na universidade, você importante no campo da ciência da computação ou se você estudar tecnologia da informação na escola, isto só irá ajudá-lo, mas não é uma obrigação. Se você importante no turismo, lei ou outra disciplina que tem pouco em comum com a tecnologia de computador, você ainda pode se tornar um bom programador, desde que você tem o desejo. A indústria de software está cheio de bons desenvolvedores sem a ciência da computação ou grau relacionados.

Espera-se para que você tenha conhecimentos básicos de computador, uma vez que não seria explicar o que um arquivo, disco rígido e placa de rede são, nem como mover o mouse ou como escrever em um teclado. Esperamos que você sabe como trabalhar com um computador e como usar a Internet.

Recomenda-se que os leitores têm pelo menos algum conhecimento básico de Inglês. Toda a documentação que você vai usar todos os dias e quase todos os sites na programação que você estaria lendo em todos os momentos são em Inglês. Na profissão de um programador, o Inglês é absolutamente essencial. Quanto mais cedo você aprender isso, melhor. Esperamos que você já falam Inglês; caso contrário, como você lê este texto?

Fazer nenhuma ilusão de que você pode se tornar um programador sem aprender até mesmo um pouco de Inglês! Isto é simplesmente uma expectativa ingênua. Se você não fala Inglês, concluir um curso de algum tipo e, em seguida, começar a ler literatura técnica, tome nota de quaisquer palavras desconhecidas e aprendê-las. Você vai ver por si mesmos que o Inglês Técnico é fácil de aprender e não leva muito tempo.

Qual é o escopo deste livro?

Este livro cobre os fundamentos da programação. Ele vai ensinar-lhe como definir e usar variáveis, como trabalhar com estruturas de dados primitivos (como números), como organizar declarações lógicas, instruções condicionais e loops, como imprimir no console, como usar matrizes, como trabalhar com sistemas numéricos, como definir e utilizar métodos, e como criar e usar objetos. Junto com o conhecimento básico de programação, este livro vai ajudá-lo a tomar em conceitos mais complicados, tais como processamento de corda, tratamento de exceções, usando estruturas complexas de dados (como árvores e tabelas de hash), trabalhando com arquivos de texto, definindo classes personalizadas e trabalhar com consultas LINQ . Os conceitos de programação orientada a objetos (OOP) – uma abordagem estabelecida no desenvolvimento de software moderna – será abordado de forma aprofundada. Finalmente, você será confrontado com as práticas para escrever programas de alta qualidade e resolução de problemas de programação do mundo real. Este livro apresenta uma metodologia completa para a resolução de problemas de programação, bem como problemas algorítmicos em geral, e mostra como implementá-lo com alguns indivíduos da amostra e exames de programação. Isso é algo que você não vai encontrar em qualquer outro livro sobre programação!

Qual será este livro não lhe ensinar?

Este livro não irá atribuir-lhe a profissão “engenheiro de software”! Este livro não vai te ensinar como usar toda a plataforma .NET, como trabalhar com bancos de dados, como criar sites dinâmicos e desenvolver aplicações móveis, como criar baseada em janelas interface gráfica do usuário (GUI) e aplicações ricas para internet ( RIA). Você não vai aprender a desenvolver aplicativos de software complexos e sistemas como o Skype, Firefox, MS Word ou redes sociais como o Facebook e sites de varejo como Amazon.com. E nenhum outro livro único vai. Esses tipos de projetos requerem muitos, muitos anos de trabalho e experiência e conhecimento neste livro é apenas um começo maravilhoso para o totó futuro programador.

A partir deste livro que você não vai aprender engenharia de software, trabalho em equipe e você não será capaz de preparar-se para trabalhar em projetos reais em uma empresa de software. A fim de aprender tudo isso, você vai precisar de mais alguns livros e cursos extras, mas não me arrependo do tempo que você vai gastar com este livro. Você está fazendo a escolha certa, começando com os fundamentos da programação ao invés de diretamente com o desenvolvimento Web, aplicações móveis e bases de dados. Isto dá-lhe a oportunidade de se tornar um programador mestre que tem conhecimento profundo de programação e tecnologia. Depois de adquirir os fundamentos da programação se tornará muito mais fácil para você ler e aprender sobre bancos de dados e aplicações web, e você vai entender o que você lê muito mais fácil e com maior profundidade, em vez de se começar directamente SQL aprendizagem, ASP.NET, AJAX, XAML ou WinRT.

Alguns de seus colegas começam diretamente a programação com Web ou móveis aplicações e bancos de dados sem saber o que uma matriz, uma lista ou tabela de hash é. Não os invejo! Eles se propuseram a fazê-lo da maneira mais difícil, para trás. Eles vão aprender a fazer sites de baixa qualidade com PHP e MySQL, mas eles vão achar que é infinitamente difícil de se tornar verdadeiros profissionais. Você também vai aprender tecnologias web e bancos de dados, mas antes de levá-los para cima, aprender a programar! Isso é muito mais importante. Aprender uma ou outra tecnologia é muito fácil uma vez que você sabe o básico, quando você pode pensar de algoritmos e você sabe como lidar com os problemas de programação.

Começando a programar com aplicações web ou / e bancos de dados é tão incorrecta como estudar uma língua estrangeira de algum romance clássico em vez do alfabeto e um livro para iniciantes. Não é impossível, mas se você não tiver o básico, é muito mais difícil. É altamente provável que você iria acabar faltando conhecimento fundamental vital e sendo o alvo de chacota de seus colegas / pares.

Como as informações apresentadas?

Apesar do grande número de autores, co-autores e editores, temos feito o nosso melhor para fazer o estilo do livro similar em todos os capítulos e altamente compreensível. O conteúdo é apresentado de uma forma bem estruturada; que é dividido em muitos títulos e legendas, o que torna a sua recepção fácil e buscar informações no texto rápido.

O presente livro é escrito por programadores para programadores. Os autores são os desenvolvedores de software ativos, colegas com genuína experiência em desenvolvimento de software e treinamento de futuros programadores. Devido a isso, a qualidade em que o conteúdo é apresentado está em um nível muito bom, como você vai ver por si mesmo.

Todos os autores são claramente conscientes de que o código-fonte da amostra é uma das coisas mais importantes em um livro sobre programação. Devido a esta razão, o texto é acompanhado com muitos, muitos exemplos, ilustrações e figuras.

Quando cada capítulo é escrito por um autor diferente, não há nenhuma maneira de evitar completamente as diferenças no estilo de expressão e de qualidade entre capítulos. Alguns autores colocar um monte de trabalho (meses) e um monte de esforços para tornar seus capítulos perfeito. Outros não poderia investir muito esforço e é por isso que alguns capítulos não são tão bons como os melhores. Por último, mas não menos importante, a experiência dos autores varia – alguns foram programando profissionalmente por 2-3 anos, enquanto outros – para 15 anos. Isso afeta a qualidade, sem dúvida, mas garanto-vos que cada capítulo foi revisto e as normas de qualidade Svetlin Nakov e sua equipe.

C # e .NET Framework

Este livro é sobre a programação. Destina-se a ensinar a pensar como um programador, para escrever código, para pensar em estruturas de dados e algoritmos e resolver problemas.

Usamos C # e Microsoft .NET Framework (a plataforma para trás C #), apenas como meios para escrever código de programação e nós não examinar as especificidades da linguagem. Este mesmo livro pode ser encontrado em versões para outras linguagens como Java e C ++, mas as diferenças não são muito significativas.

No entanto, vamos dar um breve relato de C # (pronuncia-se “ver sharp”).

C # é uma linguagem de programação moderna para o desenvolvimento de aplicações de software.

Se as palavras “C #” e “.NET Framework” são desconhecidos para você, você vai aprender em detalhes sobre eles e sua conexão no próximo capítulo . Agora vamos explicar brevemente o C #, .NET, .NET Framework, CLR e as outras tecnologias relacionadas com a C # são.

A linguagem de programação C #

C # é uma moderna linguagem de programação orientada a objetos, de uso geral, criado e desenvolvido pela Microsoft em conjunto com a plataforma .NET. Há muito software diversificado desenvolvido com C # e na plataforma .NET: aplicativos de escritório, aplicações web, sites, aplicações desktop, aplicações móveis, jogos e muitos outros.

C # é uma linguagem de alto nível que é semelhante ao Java e C ++ e, em certa medida, linguagens como Delphi, VB.NET e programas de C. Todos C # são orientados a objeto. Eles consistem de um conjunto de definições de classes que contêm métodos e os métodos contêm a lógica do programa – as instruções que o computador executa. Você vai descobrir mais detalhes sobre o que uma classe, um método e programas C # estão em o próximo capítulo .

Hoje em dia C # é uma das linguagens de programação mais populares. Ele é usado por milhões de desenvolvedores em todo o mundo. Porque C # é desenvolvido pela Microsoft como parte de sua plataforma moderna para o desenvolvimento e execução de aplicações, o .NET Framework, a língua é amplamente difundido entre as empresas orientadas Microsoft, organizações e desenvolvedores individuais. Para melhor ou para pior, a partir desta escrita do livro, a linguagem C # ea plataforma .NET são mantidos e geridos inteiramente pela Microsoft e não estão abertos a terceiros. Devido a isso, todas as outras empresas de software de grande porte como IBM, Oracle e SAP basear suas soluções na plataforma Java e usar Java como idioma principal para o desenvolvimento de seus próprios produtos de software.

Ao contrário de C # e .NET Framework, a linguagem Java e plataforma são projetos de código aberto que toda uma comunidade de empresas de software, organizações e desenvolvedores individuais participam. As normas, as especificações e todos os novos recursos do mundo de Java são desenvolvido por grupos de trabalho formados a partir de toda a comunidade Java, em vez de uma única empresa (como o caso do C # e .NET Framework).

O # linguagem C é distribuído juntamente com um ambiente especial em que ele é executado, o chamado Common Language Runtime (CLR). Este ambiente é parte da plataforma .NET Framework, que inclui CLR, um conjunto de bibliotecas padrão que oferecem a funcionalidade básica, compiladores, depuradores e outras ferramentas de desenvolvimento. Graças aos programas CLR-quadro são portáteis e, mais uma escrita que pode funcionar com pouca ou nenhuma alteração em várias plataformas de hardware e sistemas operacionais. # Programas em C são mais comumente executados em MS Windows, mas o .NET Framework e CLR também suportam telefones celulares e outros dispositivos portáteis baseados em Windows Mobile, Windows Phone e Windows # programas 8. C ainda pode ser executado em Linux, FreeBSD, iOS, Android , outros sistemas operacionais através da implementação .NET Framework livre Mono, que, no entanto, não é oficialmente suportado pela Microsoft MacOS X e.

O Microsoft .NET Framework

A linguagem C # não é distribuído como um produto independente -. É uma parte da plataforma Microsoft .NET Framework (pronuncia-se “Microsoft Dot Net Framework”) .NET Framework geralmente consiste de um ambiente para o desenvolvimento e execução de programas, escrito em C # ou alguma outra linguagem compatível com .NET (como VB.NET, C ++ gerenciado, J # ou F #). Isso consiste de:

  • as linguagens de programação .NET (C #, VB.NET e outros);
  • um ambiente para a execução de código gerenciado (CLR), que executa programas em C # de forma controlada;
  • um conjunto de ferramentas de desenvolvimento, como o compilador csc, que transforma programas em C # no código intermediário (chamada MSIL) que o CLR pode entender;
  • um conjunto de bibliotecas padrão, como NET, que permitem o acesso a bancos de dados (como o MS SQL Server ou MySQL) e WCF que conecta aplicações através de quadros de comunicação padrão e protocolos como soquetes HTTP, REST, JSON, sabão e TCP.

O .NET Framework é parte de cada distribuição moderna Windows e está disponível em diferentes versões. A última versão pode ser baixado e instalado a partir do site da Microsoft. Como da publicação deste livro, a versão mais recente do .NET Framework é 4.5. O Windows Vista inclui out-of-the-box .NET Framework 2.0, Windows 7 – .NET 3.5 e Windows 8 – .NET 4.5.

Por que C #?

Há muitas razões por que escolhemos C # para o nosso livro. É uma linguagem de programação moderna, amplamente difundido, utilizado por milhões de programadores ao redor do mundo inteiro. Ao mesmo tempo # C é uma forma muito simples e fácil de aprender (ao contrário de C e C ++). É natural que se comece com uma linguagem que é adequada para iniciantes, enquanto ainda amplamente utilizado na indústria, muitas grandes empresas, tornando-se uma das linguagens de programação mais populares hoje em dia.

C # ou Java?

Embora isso possa ser amplamente discutido, é comumente reconhecido que Java é o mais sério concorrente para C #. Nós não vamos fazer uma comparação entre Java e C #, porque C # é indiscutivelmente o melhor, mais poderoso, mais rico e apenas melhor engenharia. Mas, para os propósitos deste livro, temos que enfatizar que qualquer linguagem de programação moderna será suficiente para aprender a programação e algoritmos. Nós escolhemos C #, porque é mais fácil de aprender e é distribuído com o altamente conveniente, ambiente livre de desenvolvimento integrado (por exemplo, Visual C # Express Edition). Aqueles que preferem Java pode preferir usar a versão Java deste livro, que pode ser encontrado aqui: www.introprogramming.info .

Por que não php?

Com relação às linguagens de programação popularidade, além de C # e Java, outra língua utilizada é PHP. É apropriado para o desenvolvimento de pequenos sites e aplicações web, mas dá origem a sérias dificuldades na implementação de grandes e complicados sistemas de software. Na indústria de software PHP é usada em primeiro lugar para os pequenos projectos, porque pode facilmente levar desenvolvedores em código de escrita que é ruim, desorganizado e difícil de manter, tornando-se inconveniente para projectos mais substanciais. Este assunto também é discutível, mas é comummente aceite que, por causa de seus conceitos antiquados e origens Ele é construído sobre e devido a várias razões evolutivas, PHP é uma linguagem que tende para a programação de baixa qualidade, escrever código ruim e criando difícil manter software. PHP é uma linguagem processual no conceito e, embora ele suporta os paradigmas da moderna programação orientada a objetos, a maioria dos programadores PHP escrever processualmente. PHP é conhecido como a linguagem da “macacos de código” na profissão de engenharia de software, porque a maioria dos programadores PHP escrever terrivelmente código de baixa qualidade. Devido à tendência de escrever de baixa qualidade, mal estruturado e código de programação mal organizado, todo o conceito da linguagem PHP e da plataforma é considerada empresas erradas e graves (como Microsoft, Google, SAP, Oracle e seus parceiros) evitá-lo. Devido a esta razão, se você quiser se tornar um engenheiro de software sério, começar com C # ou Java e evitar PHP (tanto quanto possível).

Certamente, PHP tem sua utilidade no mundo da programação (por exemplo, criar um blog com o WordPress, um site pequeno, com Joomla ou Drupal, ou um fórum de discussão com PhpBB), mas toda a plataforma PHP não é bem organizado e desenvolvido para grandes sistemas como .NET e Java. Quando se trata de aplicações não-web baseado e grandes projetos industriais, PHP não é por um tiro longo entre as opções disponíveis. Lotes e lotes de experiência é necessário o uso de PHP corretamente e para desenvolver projetos de profissionais de alta qualidade com ele. Desenvolvedores PHP normalmente aprender com tutoriais, artigos e livros de baixa qualidade e pegar as más práticas e hábitos, que depois são difíceis de erradicar. Portanto, não aprender PHP como sua primeira linguagem de desenvolvimento. Comece com C # ou Java.

Com base na vasta experiência dos autores coletiva aconselhamo-lo a iniciar a programação com C # e ignorar linguagens como C, C ++ e PHP até o momento em que você tem que usá-los.

Why Not C ou C ++?

Embora isso também é discutível, as linguagens C e C ++ são considerados bastante primitiva, velho e decadente. Eles ainda têm seus usos e são adequados para programação de baixo nível (por exemplo, programação para dispositivos de hardware especializados), mas não aconselho você a persegui-los.

Você pode programar em C puro, se você tem que escrever um sistema operacional, um driver de dispositivo de hardware ou se você deseja programar um dispositivo embutido, por causa da falta de alternativas ea necessidade de controlar o hardware com muito cuidado. A linguagem C é moralmente idade e de forma alguma fazer aconselhamo-lo a começar a programar com ela. A produtividade de um programador sob pura C é muitas vezes menor em comparação com a sua produtividade sob modernas linguagens de programação de uso geral, como C # e Java. Uma variante C é usado entre os desenvolvedores Apple / iPhone, mas não porque é uma boa linguagem, mas porque não há alternativa decente. A maioria dos programadores orientados a Apple não gosta de Objective-C, mas eles não têm escolha por escrito em outra coisa.

C ++ é aceitável quando você tem que programar aplicações que exigem muito próximo trabalho com o hardware ou que tenham requisitos de desempenho especiais (como jogos 3D). Para todos os outros fins (como desenvolvimento de aplicações web ou software de negócios) C ++ é fenomenalmente inadequada. Nós não aconselhá-lo a persegui-lo, se você está começando com programação apenas agora. A razão pela qual ele ainda está sendo estudado em algumas escolas e universidades é hereditária, porque estas instituições são muito conservadores. Por exemplo, a Olimpíada Internacional de Informática (IOI) continua a promover C ++ como a única língua permitida a utilização de concursos de programação, embora C ++ é raramente usado na indústria. Se você não acreditar, olhar através de algum site de busca de emprego e contar a percentagem de anúncios de emprego com C ++.

A linguagem C ++ perdeu a sua popularidade principalmente por causa da incapacidade de rapidamente escrever software de qualidade com ele. A fim de escrever software de alta qualidade em C ++, você tem que ser um programador incrivelmente inteligente e experiente, ao passo que o mesmo não é estritamente necessário para C # e Java. Aprender C ++ leva muito mais tempo e muito poucos programadores sabem disso muito bem. A produtividade dos programadores C ++ é muitas vezes menor do que C # ‘s e é por isso C ++ está a perder terreno. Devido a todas essas razões, a linguagem C ++ está lentamente desaparecendo e, portanto, nós não aconselhá-lo a aprender.

As vantagens de C #

C # é uma linguagem de programação orientada a objetos. Tal como são todas as modernas linguagens de programação que são usados para sistemas de software graves (como Java e C ++). As vantagens de programação orientada a objetos são criados em muitas passagens ao longo do livro, mas, no momento, você pode pensar em linguagens orientadas a objetos como línguas que permitem trabalhar com objetos do mundo real (por exemplo, estudante, escola, livro didático , livro e outros). Os objetos têm propriedades (por exemplo, nome, cor, etc.) e podem realizar ações (por exemplo, mover, falar, etc.).

Ao começar a programar com C # ea plataforma .NET Framework, você está em uma pista muito perspectiva. Se você abrir um site com ofertas de emprego para programadores, você vai ver por si mesmo que a demanda por C # e .NET especialistas é enorme e fica perto da demanda de programadores Java. Ao mesmo tempo, a demanda por PHP, C ++ e outros especialistas em tecnologia é muito menor do que a demanda para C # e engenheiros Java.

Para o bom programador da linguagem que eles usam é de nenhum significado importante, porque eles sabem como programar. Seja qual for a linguagem e tecnologia que poderiam precisar, eles vão dominá-lo rapidamente. Nosso objetivo não é ensinar a você C #, mas sim para lhe ensinar a programação! Depois de dominar os fundamentos da programação e aprender a pensar através de algoritmos, quando você familiarizar com outras linguagens de programação e você vai ver por si mesmo como muito em comum que têm com C # e quão fácil será para aprendê-las. A programação é construída sobre princípios que mudam muito lentamente ao longo dos anos e este livro ensina-lhe esses mesmos princípios.

Exemplos são dados em C # 5 e Visual Studio 2012

Todos os exemplos deste livro são em relação à versão 5.0 da linguagem C # ea plataforma .NET Framework 4.5, que é o mais recente a partir de publicação deste livro. Todos os exemplos sobre como usar o ambiente de desenvolvimento Visual Studio são integradas em relação à versão 2012 do produto, que também foram o mais tardar no momento da escrita deste livro.

O Studio 2012 ambiente Microsoft Visual de desenvolvimento integrado (IDE) tem uma versão gratuita, adequado para programadores iniciantes C #, chamado Microsoft Visual Studio Express 2012 para o Windows Desktop. A diferença entre o livre e a versão completa do Visual Studio (que é um produto de software comercial) encontra-se em termos de funcionalidade, que não vamos precisar neste livro.

Apesar de usarmos C # 5 e Visual Studio 2012, a maioria dos exemplos deste livro irá funcionar sem falhas no .NET Framework 2.0 / 3.5 / 4.0 e C # 2.0 / 3.5 / 4.0 e podem ser compilados em Visual Studio 2005/2008/2010.

Não é de grande importância a versão do C # e Visual Studio você vai usar quando você aprender programação. O que importa é que você aprende os princípios de programação e pensamento algorítmico! O # linguagem C, a plataforma .NET Framework eo ambiente de desenvolvimento Visual integrado Studio são apenas ferramentas e você pode trocá-los por outros a qualquer momento. Se você ler este livro e VS2012 não está neste momento a mais recente, certifique-se quase todo este conteúdo livro ainda será o mesmo, devido à compatibilidade com versões anteriores.

Como То ler este livro?

A leitura deste livro tem de ser acompanhada com muita e muita prática. Você não vai aprender a programação, se você não praticar! Seria como tentar aprender a nadar de um livro sem realmente tentar. Não há outro caminho! Quanto mais você trabalhar sobre os problemas no final de cada capítulo, o mais que você vai aprender com o livro.

Tudo o que você leu aqui você teria que tentar por si mesmo em um computador. Caso contrário, você não vai aprender nada. Por exemplo, uma vez que você ler sobre Visual Studio e como escrever o seu primeiro programa simples, você deve por todos os meios fazer o download e instalar o Microsoft Visual Studio (ou Visual C # Express) e tentar escrever algum programa. Caso contrário, você não vai aprender! Na teoria, tudo parece fácil, mas a programação significa prática . Lembre-se disso e tentar resolver os problemas deste livro. Eles são cuidadosamente selecionados – eles não são nem demasiado duro para desanimá-lo, nem muito fácil, assim você estará motivado para perceber resolvê-los como um desafio. Se você encontrar dificuldades, procure ajuda no grupo de discussão para o curso de formação “C Fundamentos # Programação” no Telerik Software Academy: http://forums.academy.telerik.com (o fórum é destinado a desenvolvedores búlgaros mas o povo “viver “em que falam Inglês e irá responder às suas perguntas em relação a este livro, não se preocupe). Milhares de estudantes resolver os exercícios deste livro a cada ano, de modo que você vai encontrar muitas soluções para cada problema a partir do livro. Publicaremos também soluções + testes oficiais de todos os exercícios no livro em seu web site.

A leitura deste livro sem praticar é sem sentido! Você deve gastar muito mais tempo em escrever programas de ler o texto em si. É como aprender a dirigir: ninguém pode aprender a condução, lendo livros. Para saber dirigir você precisa para conduzir muitas vezes em situações diferentes, estradas, carros, etc. Para saber a programação é necessário programar!

Todo mundo tem estudado matemática na escola e sabe que aprender a resolver problemas de matemática requer muita prática. Não importa o quanto uma pessoa assiste e ouve a seu professor, sem realmente sentar e resolver problemas, eles não vão aprender . O mesmo vale para a programação. Você precisa de muita prática. Você precisa escrever um monte, para resolver problemas, de experimentar, de se esforçar e lutar com problemas, a cometer erros e corrigi-los, tentar e falhar, para tentar de novo e experimentar os momentos em que as coisas finalmente trabalhar fora. Você precisa de muita e muita prática. Esta é a única maneira que você vai fazer progressos.

Então, as pessoas dizem que para se tornar um desenvolvedor, você pode precisar de escrever pelo menos 50.000 – 100.000 linhas de código, mas o número correto pode variar muito. Algumas pessoas são aprendizes rápidos ou apenas ter a resolução de problemas experiência. Outros podem precisar de mais prática, mas em todos os casos a prática de programação é muito importante ! Você precisa resolver problemas e um monte de código de escrita para se tornar um desenvolvedor. Não há outro caminho!

Não pule os exercícios!

No final de cada capítulo há uma lista considerável de exercícios . Não ignorá-los! Sem exercícios você não vai aprender uma coisa. Depois de ler um capítulo, você deve sentar-se na frente do computador e jogar com os exemplos que você já viu no livro. Em seguida, você deve definir sobre como resolver todos os problemas. Se você não pode resolver todos eles, você deve pelo menos tentar. Se você não tem todo o tempo necessário, você deve, pelo menos, tentar resolver os primeiros problemas de cada capítulo. Não continuar sem resolver os problemas depois de cada capítulo , que seria apenas sem sentido! Os problemas são pequenas situações possíveis onde aplicar o material que você leu. Na prática, uma vez que você se tornar programadores, você iria resolver problemas semelhantes todos os dias, mas em uma escala maior e mais complexa.

Você deve a todo o custo se esforçam para resolver os problemas de exercício após cada capítulo do livro! Caso contrário, você não corre o risco de aprender qualquer coisa e simplesmente desperdiçando seu tempo.

Quanto tempo vamos precisar para este livro?

Dominar os fundamentos da programação é uma tarefa crucial e tem um monte de tempo . Mesmo se você é incrivelmente bom no que faz, não há nenhuma maneira que você vai aprender a programação em um bom nível para uma semana ou duas. Para saber toda a habilidade humana, você precisa ler, ver ou para ser mostrado como é feito e, em seguida, tentar fazê-lo a si mesmos e praticar muito. O mesmo vale para a programação – você deve ler, ver ou ouvir como é feito, em seguida, tentar fazê-lo sozinho . Então você teria sucesso ou você não e você tente novamente, até que finalmente perceber que você tenha aprendido. A aprendizagem é feito passo a passo, consecutivamente, em série, com muito esforço e consistência.

Se você quiser ler, entender, aprender e adquirir inteiramente, e em profundidade, o assunto neste livro, você tem que investir pelo menos 2 meses para a atividade de um dia ou, pelo menos, 4-5 meses, se você ler e exercer uma pouco a cada dia. Esta é a quantidade mínima de tempo que você levaria para ser capaz de compreender em profundidade os fundamentos da programação.

A necessidade de uma tal quantidade de lições é confirmado pelos treinos livres em Telerik Software Academy ( http://academy.telerik.com ), que segue este mesmo livro. As centenas de estudantes, que já uma formação sobre as palestras deste livro, geralmente aprendem todos os assuntos deste livro dentro de 3-4 meses de trabalho em tempo integral . Milhares de estudantes todos os anos resolver todos os problemas de exercícios deste livro e sentar-se com sucesso nos exames de programação que abrangem o conteúdo do livro. Estatísticas mostram que qualquer pessoa, sem exposição prévia à programação, que passou menos do que o equivalente a 3-4 meses de atividade de um dia inteiro sobre este livro e o curso correspondente no Telerik Academy, falhar os exames.

O principal assunto do livro é apresentado em mais de 1100 páginas , que irá levá-lo um mês (dia inteiro) apenas para lê-los com cuidado e testar os programas de exemplo. Claro, você tem que gastar tempo suficiente nos exercícios (mais alguns meses); sem eles você dificilmente aprender programação.

Exercícios: Complexo ou fácil?

Os exercícios do livro consistem de cerca de 350 problemas com diferentes graus de dificuldade. Para alguns deles, você vai precisar de alguns minutos, para outros várias horas (se você pode resolvê-los em tudo sem ajuda). Isto significa que você precisaria de um mês ou dois de um dia inteiro exercício ou vários meses, se você fazê-lo pouco a pouco.

Os exercícios em cada capítulo são ordenados no aumento do nível de dificuldade . As primeiras poucas são fáceis exercícios, semelhante aos exemplos no capítulo. Os últimos exercícios são geralmente complexo. Você pode precisar usar recursos externos (como a leitura na Wikipedia) para resolvê-los. Intencionalmente últimos exercícios em cada capítulo exigem habilidades fora do capítulo . Queremos empurrá-lo para realizar uma pesquisa no seu motor de busca favorito. Você precisa aprender pesquisar na Internet! Esta é uma habilidade essencial para qualquer programador. Você precisa aprender a aprender. A programação é sobre aprender a cada dia. As tecnologias mudam constantemente e você não pode saber tudo. Para ser um programador significa aprender APIs novas, estruturas, tecnologias e ferramentas a cada dia . Isso não pode ser evitado, apenas se preparar. Você vai encontrar muitos problemas nos exercícios, que exigem que pesquisam na Internet. Algum dia você vai precisar das habilidades do próximo capítulo, às vezes algum algoritmo bem conhecido, às vezes outra coisa, mas em todos os casos que pesquisam na Internet é habilidade essencial que você precisa para adquirir.

Resolver os exercícios do livro precisa de alguns meses , na verdade. Se você não tem muito tempo à sua disposição, pergunte-se se você realmente quer levar a cabo programação. Esta é uma iniciativa muito séria que você deve investir realmente um grande esforço em. Se você realmente quer aprender a programação em um bom nível, agendar tempo suficiente e seguir o livro ou as conferências de vídeo com base nele.

Por que as Estruturas de Dados e Algoritmos enfatizado?

Este livro ensina-lhe, além do conhecimento básico em programação, adequada pensamento algorítmico e usando os básicos estruturas de dados na programação. Estruturas de dados e algoritmos são habilidades fundamentais mais importantes de um programador! Se você tem uma boa compreensão deles, você não terá qualquer dificuldade para se tornar proficientes em uma tecnologia de software, ferramenta de desenvolvimento, estrutura ou API. Isso é o que as empresas de software mais graves dependem de quando a contratação de funcionários. Prova disso são as entrevistas de emprego em grandes empresas como Google e Microsoft que dependem exclusivamente de pensamento algorítmico e conhecimento de todos os básicos estruturas de dados e algoritmos .

As informações a seguir vem de Svetlin Nakov , o autor principal deste livro, que passou entrevistas de engenharia de software na Microsoft e Google em 2007-2008 e compartilha sua própria experiência.

Entrevistas de trabalho no Google

100% das perguntas em entrevistas de trabalho para engenheiros de software da Google, Zurique, são cerca de estruturas de dados, algoritmos e pensamento algorítmico . Em tal uma entrevista que você pode ter que implementar em um quadro branco uma lista ligada (veja o capítulo ” Estruturas de Dados Linear “) ou chegar a um algoritmo para preencher um polígono raster (dada na forma de uma imagem GIF) com algum tipo de cores (ver em largura de busca no capítulo ” Árvores e Gráficos “). Parece que o Google está interessado em contratar pessoas que podem pensar de algoritmos e que têm uma compreensão das estruturas de dados básicos e algoritmos de computador. Qualquer tecnologia que os candidatos seriam posteriormente usar em sua linha de trabalho pode ser aprendido rapidamente. Escusado será dizer que, não assuma este livro vai lhe dar todo o conhecimento e habilidades para passar uma entrevista de emprego no Google. O conhecimento no livro é mínima absolutamente necessária, mas não completamente suficiente. Ele só marca os primeiros passos.

Entrevistas de trabalho no Microsoft

Um monte de perguntas em entrevistas de trabalho para engenheiros de software da Microsoft, Dublin, o foco em estruturas de dados , algoritmos e pensamento algorítmico . Por exemplo, você pode ser solicitado para reverter as palavras em uma string (ver “capítulo Cordas e Processamento de Texto ” ou para implementar ordenação topológica em um grafo não direcionado (veja o capítulo ” Árvores e Gráficos “). Ao contrário do Google, a Microsoft pede uma monte de perguntas de engenharia relacionadas com arquiteturas de software, multithreading, escrevendo código de segurança, que trabalham com grandes quantidades de dados e testes de software. Este livro está longe de ser suficiente para a aplicação da Microsoft, mas o conhecimento certamente será de utilidade para você para o maioria das perguntas.

Sobre a tecnologia LINQ

O livro inclui um capítulo sobre a tecnologia popular .NET LINQ ( Language Integrated Query ), que permite a execução de várias consultas (tais como pesquisa, classificação, soma e outras operações do grupo) em matrizes, listas e outros objetos. Ele é colocado no final de propósito, após os capítulos sobre estruturas de dados e algoritmos de complexidade . A razão para isso é porque o bom programador deve saber o que acontece quando eles classificar uma lista ou procure em uma matriz de acordo com critérios e quantas operações essas ações tomar. Se LINQ é usado, não é óbvio como uma determinada consulta funciona e quanto tempo leva. LINQ é uma tecnologia muito poderosa e amplamente utilizada , mas tem que ser dominado em um estágio posterior (no final do livro) , depois que você está bem familiarizado com as noções básicas de programação, os principais algoritmos e estruturas de dados. Caso contrário, corre o risco de aprender a escrever código ineficiente, sem perceber como funciona e quantas operações que executa no fundo.

Você realmente quer se tornar um programador?

Se você quer se tornar um programador , você tem que estar ciente de que os verdadeiros programadores é sério e perseverante, pensar e questionar as pessoas que lidam com todos os tipos de problemas. É importante para eles para dominar rapidamente todas as plataformas modernas ou legados, tecnologias, bibliotecas, APIs, ferramentas de programação, linguagens de programação e ferramentas de desenvolvimento necessárias para o seu trabalho, e para sentir a programação como uma parte de sua vida.

Bons programadores gastar uma quantidade extraordinária de tempo em fazer avançar suas habilidades de engenharia , em aprender novas tecnologias, novas linguagens de programação e paradigmas, novas maneiras de fazer o seu trabalho, novas plataformas e novas ferramentas de desenvolvimento de todos os dias. Eles são capazes de pensamento lógico ; raciocínio sobre os problemas e chegando com algoritmos para resolvê-los; imaginando soluções como uma série de passos; modelar o mundo circundante, através de meios tecnológicos; implementar as suas ideias como programas ou componentes do programa; testar seus algoritmos e programas; vendo questões; prevendo as circunstâncias excepcionais que podem vir sobre e manuseá-los adequadamente; ouvindo a assessora de mais pessoas experientes; adaptar interface de usuário de seus aplicativos para as necessidades do usuário; adaptando seus algoritmos para as capacidades das máquinas e do ambiente em que será executado em e interagir com.

Bons programadores constantemente ler livros, artigos ou blogs sobre a programação e está interessado em novas tecnologias; eles constantemente enriquecer os seus conhecimentos e melhorar constantemente a forma como eles funcionam ea qualidade do software que eles escrevem. Alguns tornam-se obcecados, de tal forma que até se esquecem de comer ou dormir quando confrontados com um problema sério ou simplesmente inspirado por alguns interessante palestra ou apresentação. Se você tem a tendência a ficar motivado para tal ponto de fazer algo (como jogar jogos de vídeo incessantemente), você pode aprender a programação muito rapidamente por ficar na mentalidade que a programação é a coisa mais interessante sobre este mundo para você, neste período de sua vida.

Bons programadores têm um ou mais computadores, acesso à Internet e viver em alcance constante com tecnologias . Eles visitam regularmente sites e blogs relacionados com as novas tecnologias, comunicar todos os dias com os seus colegas, visite palestras tecnologia, seminários e outros eventos, mesmo se eles não têm uso para eles no momento. Eles experimentar com ou pesquisar os novos meios e novas maneiras para fazer uma peça de software ou de uma parte do seu trabalho. Eles examinam novas bibliotecas, aprender novas línguas, tente novos quadros e mexer com novas ferramentas de desenvolvimento. Dessa forma, eles desenvolvem suas habilidades e manter o seu nível de consciência, competência e profissionalismo.

Programadores verdadeiros sabem que nunca pode dominar a sua profissão em toda sua extensão, porque ele muda constantemente. Eles vivem com a firme convicção de que eles têm de aprender a vida inteira ; eles gostam isso e os satisfaz. Programadores verdadeiros são pessoas curiosas e questionando que querem saber como tudo funciona – a partir de um relógio analógico simples de um sistema de GPS, tecnologia de Internet, linguagens de programação, sistemas operacionais, compiladores, computação gráfica, jogos, hardware, inteligência artificial e tudo mais relacionados com a computadores e das tecnologias. Quanto mais se aprende, mais conhecimento e as habilidades que eles desejam em seguida. A sua vida está ligada a tecnologias e mudam com eles, aproveitando o desenvolvimento da ciência da computação, tecnologias e da indústria de software.

Tudo o que dizer sobre os programadores verdadeiros, sabemos em primeira mão. Estamos convencidos de que programador é uma profissão que requer sua total devoção e atenção completa, a fim de ser realmente um bom especialista – experiente, competente, informado, pensamento, raciocínio, conhecimento, capaz e capaz de lidar com situações não-padrão. Qualquer pessoa que ocupa a programação “, entre outras coisas” está destinado a ser um programador medíocre. Programação requer dedicação total durante anos . Se você está pronto para tudo isso, continue a ler e ter em conta que os próximos meses você vai gastar com este livro sobre programação são apenas um pequeno começo. E então você vai aprender durante anos até que se altere a programação em sua profissão. Quando isso acontece você ainda iria aprender algo todos os dias e competir com as tecnologias, para que você possa manter o seu nível, até que um dia a programação desenvolve o seu pensamento e habilidades o suficiente, de modo que você pode levar até outra profissão, pois alguns programadores chegar a aposentadoria; mas há um monte de pessoas bem sucedidas que começaram suas carreiras com a programação.

Motivar-se para tornar um programador ou encontrar outro emprego!

Se você ainda não ter desistido de se tornar um bom programador e se você já tenha chegado ao entendimento, no fundo, que os próximos meses e anos será vinculado a cada dia para trabalho diligente constante em dominar os segredos da programação, desenvolvimento de software, computador tecnologias de ciência e de software, você pode usar uma técnica antiga para a auto-motivação e realização confiante de metas que podem ser encontradas em muitos livros e antigos ensinamentos sob uma forma ou outra. Mantenha imaginar que você são programadores e que você conseguiu tornar-se mais; você se envolver todos os dias na programação ; é a sua profissão; você pode escrever todo o software no mundo (desde que você tenha tempo suficiente); você pode resolver qualquer problema que programadores experientes podem resolver. Continue a pensar constantemente e incessantemente de seu objetivo. Manter-se dizendo, por vezes mesmo em voz alta: ” Quero me tornar um bom programador e eu tenho que trabalhar duro para isso, eu tenho que ler muito e aprendi muito, eu tenho que resolver um monte de problemas, todos os dias, constantemente e diligentemente “. Coloque livros de programação em todos os lugares ao seu redor, mesmo furar uma placa que diz ” eu vou tornar-se um bom programador ” sobre a sua cama, de modo que você pode vê-lo todas as noites quando você ir para a cama e todas as manhãs quando você acordar. Programa de cada dia (sem exceções!), resolver problemas, se divertir, aprender novas tecnologias, experiência; tente escrever um jogo, fazer um site, escrevendo um compilador, um banco de dados e centenas de outros programas que você pode vir acima com idéias originais para. Para se tornar bons programadores, programa todos os dias e pensar sobre programação todos os dias e manter imaginando o momento futuro, quando você é um excelente programador. Você pode, contanto que você acredita profundamente que você pode! Todo mundo pode, contanto que eles acreditam que podem e perseguir seus objetivos constantemente sem desistir. Ninguém iria motivá-lo melhor do que vós. Tudo depende de você e este livro é o primeiro passo.

Uma ótima maneira de realmente aprender programação é programar todos os dias durante um ano. Se programar todos os dias (sem exceção) e você fazê-lo por um longo tempo (por exemplo, um ou dois anos) não há nenhuma maneira de não se tornar um programador. Qualquer pessoa que pratica a programação todos os dias durante anos se tornará bom dia. Isso é válido para qualquer outra habilidade: se você quer aprender isso, basta praticar todos os dias por um longo tempo.

Um olhar sobre o conteúdo do livro

Agora vamos dar uma olhada no que estamos prestes a encontrar nos próximos capítulos do livro . Vamos dar conta de cada um deles, com algumas frases, para que você possa saber o que você está prestes a aprender.

Capítulo 0: Prefácio

O prefácio (o capítulo atual) introduz os leitores para o livro, o seu conteúdo, o que deve o leitor aprender eo que não deve aprender, como ler o livro, porque nós usamos a linguagem C #, por isso nos concentramos em estruturas de dados e algoritmos, etc. o prefácio também descreve a história do livro, o conteúdo de seu capítulo, um por um, a equipe de autores, editores e tradutores de búlgaro para Inglês. Na contém os comentários completos escritos por engenheiros de software famosos da Microsoft, Google, SAP, VMware, Telerik e outras empresas de software líderes de todo o mundo.

Autor do prefácio é Svetlin Nakov (com pouca participação de Veselin Kolev e Mihail Stoynov). Tradução para Inglês: por Ivan Nenchovski (editado por Mihail Stoynov, Veselina Raykova , Yoan Krumov e Hristo Radkov ).

Capítulo 1: Introdução à Programação

No capítulo ” Introdução à programação “, vamos dar uma olhada na terminologia básica na programação e escrever nosso primeiro programa . Vamos nos familiarizar com o que a programação é e qual a ligação a computadores e linguagens de programação que tem. Vamos rever brevemente as principais etapas em software de desenvolvimento, introduzir a linguagem C # , a plataforma .NET e as diferentes tecnologias Microsoft utilizadas no desenvolvimento de software. Vamos examinar o que as ferramentas auxiliares precisamos programar em C # e usar a linguagem C # para escrever nosso primeiro programa de computador , compilação -lo e executar -lo usando a linha de comando, bem como o Microsoft Visual Studio ambiente de desenvolvimento integrado. Vamos nos familiarizar com o MSDN Library – a documentação para o .NET Framework, que irá nos ajudar em nosso estudo das capacidades da linguagem.

Autor do capítulo é Pavel Donchev ; editores são Teodor Bozhikov e Svetlin Nakov. O conteúdo do capítulo são um pouco com base no trabalho de Luchesar Cekov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Atanas Valchev (editado por Vladimir Tsenev e Hristo Radkov ).

Capítulo 2: Tipos primitivos e Variáveis

No capítulo ” Tipos primitivos e Variáveis ” vamos examinar tipos primitivos e variáveis em C # – o que são e como trabalhar com eles. Primeiro vamos focar os tipos de dados – os tipos inteiros, tipos de ponto flutuante real, booleano, tipos de caracteres, strings e tipos de objetos. Vamos continuar com variáveis , o que eles e as suas características são, como declarar-los, como eles são atribuídos um valor eo que inicialização variável é. Vamos nos familiarizar com as principais categorias de tipos de dados em C # – tipos de valor e de referência. Finalmente, vamos nos concentrar em literais , o que são e quais os tipos de literais que existem.

Autores do capítulo são Veselin Georgiev e Svetlin Nakov ; editor é Nikolay Vasilev . O conteúdo de todo o capítulo baseiam-se no trabalho de Hristo Todorov e Svetlin Nakov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Lora Borisova (editado por Angel Angelov e Hristo Radkov ).

Capítulo 3: Operadores e expressões

No capítulo ” Operadores e expressões ” vamos nos familiarizar com os operadores em C # e as operações que executam sobre os vários tipos de dados. Vamos esclarecer as prioridades dos operadores e nos familiarizar com os tipos de operadores, de acordo com a contagem dos argumentos que tomam e as operações que executam. Em seguida, vamos examinar typecasting , por que é necessário e como trabalhar com ele. Finalmente, descrevem e ilustram expressões e como eles são utilizados.

Autores do capítulo são Dilyan Dimitrov e Svetlin Nakov ; editor é Marin Georgiev. O conteúdo de todo o capítulo baseiam-se no trabalho de Lachezar Bozhkov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Angel Angelov (editado por Martin Yankov e Hristo Radkov ).

Capítulo 4: Entrada e Saída Console

No capítulo ” Input Console e Saída ” vamos se familiarizar com a consola como um meio para entrada e saída de dados . Vamos explicar o que é, quando e como ela é usada, o que os conceitos da maioria das linguagens de programação para aceder à consola são. Vamos nos familiarizar com alguns dos recursos do C # para a interação do usuário e analisará as principais correntes para as operações de entrada e saída Console.In , Console.Out e Console.Error , a classe Console ea utilização de cordas do formato de dados de impressão em vários formatos. Vamos ver como a conversão de texto em um número ( de análise ), já que este é o caminho para introduzir números em C #.

Autor do capítulo é Iliyan Murdanliev e editor é Svetlin Nakov. O conteúdo de todo o capítulo são em grande parte baseado no trabalho de Boris Valkov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Lora Borisova (editado por Dyanko Petkov).

Capítulo 5: Declarações Condicionais

No capítulo ” Instruções condicionais ” vamos cobrir as declarações condicionais em C # , que podemos usar para executar ações diferentes dependendo de alguma condição. Vamos explicar a sintaxe dos operadores condicionais : se e se outra com exemplos adequados e explicar as aplicações práticas do operador de controle de seleção de chave . Vamos concentrar-nos nas melhores práticas que devem ser seguidas, a fim de alcançar um melhor estilo de programação ao utilizar tipos aninhados ou outras de declarações condicionais.

Autor do capítulo é Svetlin Nakov e editor é Marin Georgiev. O conteúdo de todo o capítulo baseiam-se no trabalho de Marin Georgiev do livro “Introdução à Programação com Java”. Tradução para Inglês: por George Vaklinov (editado por Momchil Rogelov ).

Capítulo 6: Loops

No capítulo ” Loops ” vamos examinar os mecanismos de loop , através do qual podemos executar um trecho de código repetidamente. Vamos discutir repetições como condicionais ( enquanto e do-while Loops) são implementadas e como trabalhar com para loops. Vamos dar exemplos dos vários meios para definir um loop, a maneira como eles são de construção e alguns de seus principais aplicativos. Finalmente, vamos ver como podemos usar vários ciclos uns dentro dos outros (loops aninhados).

Autor do capítulo é Stanislav Zlatinov e editor é Svetlin Nakov. O conteúdo de todo o capítulo baseiam-se no trabalho de Rumyana Topalska do livro “Introdução à Programação com Java”. Tradução para Inglês: por Angel Angelov (editado por Lora Borisova ).

Capítulo 7: Arrays

No capítulo ” Arrays ” vamos nos familiarizar com matrizes como um meio para trabalhar com uma sequência de elementos do mesmo tipo. Vamos explicar o que são, como podemos declarar, criar e instanciar matrizes e como fornecer acesso aos seus elementos. Vamos examinar matrizes unidimensionais e multidimensionais . Vamos aprender as diversas maneiras para iterar através de um conjunto, a leitura da entrada padrão e escrevendo para a saída padrão. Nós daremos muitos exercícios como exemplos, que podem ser solucionados com matrizes e mostrar-lhe como eles são úteis.

Autor do capítulo é Hristo Germanov e editor é Radoslav Todorov. O conteúdo do capítulo é baseado no trabalho de Mariyan Nenchev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Boyan Dimitrov (editado por Radoslav Todorov e Zhelyazko Dimitrov).

Capítulo 8: sistemas numerais

No capítulo ” Numeral Sistemas ” vamos dar uma olhada os meios para trabalhar com vários sistemas numerais e a representação de números em si. Vamos prestar especial atenção à maneira como os números são representados em decimal , binário e hexadecimal sistemas numéricos, porque eles são amplamente utilizados em computadores, comunicações e programação. Nós também irá explicar os métodos de codificação de dados numéricos em um computador e os tipos de codificações, valor ou seja assinado, do complemento, complemento de dois e decimais binários codificados.

Autor do capítulo é Teodor Bozhikov e editor é Mihail Stoynov. O conteúdo de todo o capítulo baseiam-se no trabalho de Petar Velev e Svetlin Nakov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Atanas Valchev (editado por Veselina Raykova ).

Capítulo 9: Métodos

No capítulo ” Métodos ” vamos ficar a conhecer em detalhes as sub-rotinas de programação , que são chamados métodos em C #. Vamos explicar quando e por que métodos são utilizados; vai mostrar como os métodos são declarados e que a assinatura do método é. Vamos aprender a criar um método personalizado e como usar ( invocar ) posteriormente, e irá demonstrar como podemos usar parâmetros em métodos e como retornar um resultado de um método. Finalmente, vamos discutir algumas práticas estabelecidas quando se trabalha com métodos. Tudo isso será feito o backup com exemplos explicados em detalhes e com exercícios extras.

Autor do capítulo é Yordan Pavlov; editores são Radoslav Todorov e Nikolay Vasilev . O conteúdo de todo o capítulo baseiam-se no trabalho de Nikolay Vasilev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Ivaylo Dyankov (editado por Vladimir Amiorkov e Franz Fischbach ).

Capítulo 10: A recursão

No capítulo ” recursão ” vamos nos familiarizar com recursividade e suas aplicações . Recursão é uma técnica de programação poderosa onde um método chama-se . Por meio de recursão podemos resolver complicados problemas combinatórios , onde podemos facilmente esgotar diferentes configurações combinatória. Vamos demonstrar muitos exemplos de uso de recursão correta e incorreta e vamos convencê-lo como útil pode ser.

Autor do capítulo é Radoslav Ivanov e editor é Svetlin Nakov. O conteúdo de todo o capítulo baseiam-se no trabalho de Radoslav Ivanov e Svetlin Nakov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Vasya Stankova (editado por Yoan Krumov ).

Capítulo 11: Criando e usando objetos

No capítulo ” Criando e usando objetos ” vamos ficar a conhecer os conceitos básicos de programação orientada a objeto – classes e objetos – e vamos explicar como usar as classes das bibliotecas padrão do .NET Framework. Iremos nos concentrar em algumas classes de sistemas comumente usados e irá mostrar como criar e utilizar as suas instâncias ( objetos ). Vamos discutir como acessar as propriedades de um objeto, como chamar construtores e como trabalhar com campos estáticos em classes. Finalmente, vamos nos concentrar sobre o termo “namespaces” – como eles nos ajudam, como incluir e usá-los.

Autor do capítulo é Teodor Stoev e editor é Stefan Staev . O conteúdo de todo o capítulo baseiam-se no trabalho de Teodor Stoev e Stefan Staev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Vasya Stankova (editado por Todor Mitev).

Capítulo 12: Tratamento de Exceção

No capítulo ” Manipulação de exceção ” vamos ficar a conhecer exceções em programação orientada a objeto e em C #, em particular. Vamos aprender como capturar exceções utilizando o try-catch cláusula, como passá-los aos métodos de chamada e como jogar padrão, personalizado ou exceções capturadas usando o lance comunicado. Nós daremos um número de exemplos de sua utilização e vai olhar para os tipos de exceções e a hierarquia de exceções que se formam no .NET Framework. Finalmente, vamos olhar para as vantagens do uso de exceções e como aplicá-los em situações específicas.

Autor do capítulo é Mihail Stoynov e editor é Radoslav Kirilov. O conteúdo de todo o capítulo baseiam-se no trabalho de Luchesar Cekov , Mihail Stoynov e Svetlin Nakov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Dimitar Bonev e George Todorov (editado por Doroteya Agayna ).

Capítulo 13: Cordas e Processamento de Texto

No capítulo ” Cordas e Processamento de Texto ” vamos nos familiarizar com cordas : como eles são implementados em C # e como podemos processar o conteúdo do texto. Vamos passar por diferentes métodos para a manipulação de texto ; e aprender a extrair substrings de acordo com os parâmetros passados, como pesquisar por palavras-chave, bem como a forma de dividir uma seqüência de caracteres de separação. Vamos fornecer informações úteis sobre expressões regulares e vamos aprender a extrair dados que correspondem a um padrão específico. Finalmente, vamos dar uma olhada nos métodos e classes para alcançar mais elegante e rigoroso formatação do conteúdo de texto no console, com várias formas para imprimir números e datas.

Autor do capítulo é Veselin Georgiev e editor é Radoslav Todorov. O conteúdo de todo o capítulo baseiam-se na obra de Mario Peshev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Vesselin Georgiev (editado por Todor Mitev e Vladimir Amiorkov ).

Capítulo 14: Definindo Classes

No capítulo ” Definindo Classes ” vamos mostrar como podemos definir classes personalizadas e quais são os elementos de uma classe são. Vamos aprender a declarar campos , construtores e propriedades nas aulas e voltará a recordar o que um método é, mas vai ampliar o nosso conhecimento sobre os métodos e os seus modificadores de acesso. Vamos nos concentrar sobre as características dos construtores e vamos explicar em detalhes como existem objetos de programa na pilha (memória dinâmica) e como seus campos são inicializados. Finalmente, irá explicar o que classe estática elementos – campos (incluindo constantes ), propriedades e métodos – são e como utilizá-los. Neste capítulo vamos também apresentar os tipos genéricos ( genéricos ), os tipos enumerados ( enumerações ) e classes aninhadas.

Autores do capítulo são Nikolay Vasilev , Svetlin Nakov , Mira Bivas e Pavlina Hadjieva . O conteúdo de todo o capítulo baseiam-se no trabalho de Nikolay Vasilev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Radoslav Todorov, Yoan Krumov , Teodor Rusev e Stanislav Vladimirov (editado por Vladimir Amiorkov , Pavel Benov e Nencho Nenchev ). Este é o maior capítulo do livro, assim que os lotes de contribuintes trabalhou com ele para prepará-lo para um padrão de alta qualidade para você.

Capítulo 15: Arquivos de texto

No capítulo ” arquivos de texto “, vamos nos familiarizar com o trabalho com arquivos de texto no .NET Framework. Vamos explicar o que um fluxo é, qual o seu propósito e como ele é usado. Vamos descrever o que é um arquivo de texto é e como ler e gravar dados em arquivos de texto e irá apresentar e elaborar sobre as melhores práticas para a captura e manipulação de exceções quando se trabalha com arquivos de texto. Naturalmente, vamos visualizar e demonstrar, na prática, tudo isso com um monte de exemplos.

Autor do capítulo é Radoslav Kirilov e editor é Stanislav Zlatinov . O conteúdo de todo o capítulo baseiam-se no trabalho de Danail Alexiev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Nikolay Angelov (editado por Martin Gebov ).

Capítulo 16: Estruturas de Dados Linear

No capítulo ” Estruturas de Dados Linear ” vamos nos familiarizar com algumas das representações básicos de dados em programação e com estruturas de dados lineares , porque muitas vezes, a fim de resolver um determinado problema, temos de trabalhar com uma sequência de elementos . Por exemplo, para ler este livro, temos de ler a página consecutivamente cada, por exemplo, temos de atravessar elemento consecutivamente cada do seu conjunto de páginas. Vamos ver como para um problema específico alguma estrutura de dados é mais eficiente e conveniente do que o outro. Em seguida, vamos examinar as estruturas lineares ” Lista “, ” pilha ” e ” fila ” e suas aplicações e vão ficar a conhecer em detalhes algumas implementações destas estruturas.

Autor do capítulo é Tsvyatko Konov e editores são Dilyan Dimitrov e Svetlin Nakov. O conteúdo de todo o capítulo são em grande parte baseado no trabalho de Tsvyatko Konov e Svetlin Nakov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Vasya Stankova (editado por Ivaylo Gergov ).

Capítulo 17: Árvores e Gráficos

No capítulo ” Árvores e gráficos “, vamos olhar para as chamadas estruturas de dados de árvore-like , que são árvores e gráficos . Conhecendo as propriedades destas estruturas é importante para a programação moderna. Cada uma dessas estruturas é usado para modelar problemas da vida real que podem ser eficientemente resolvidos com a ajuda deles. Vamos examinar em detalhes o que as estruturas de dados de árvore-como são e mostram suas principais vantagens e desvantagens. Também iremos fornecer implementações de amostra e exercícios que demonstram a sua utilização prática. Além disso, vamos examinar árvores binárias, árvores de pesquisa binárias e árvores equilibradas e, em seguida, examinar o “gráfico” estrutura de dados , os tipos de gráficos e seu uso. Nós também irá mostrar quais partes do .NET Framework fazer uso de árvores de busca binária .

Autor do capítulo é Veselin Kolev e editores são Iliyan Murdanliev e Svetlin Nakov. O conteúdo de todo o capítulo baseiam-se no trabalho de Veselin Kolev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Kristian Dimitrov e Todor Mitev (editado por Nedjaty Mehmed e Dyanko Petkov).

Capítulo 18: dicionários, tabelas de hash e conjuntos

No capítulo ” dicionários, tabelas de hash e conjuntos de ” vamos analisar estruturas de dados mais complexos, como dicionários e conjuntos , e suas implementações com tabelas de hash e árvores equilibradas . Vamos explicar em detalhes o que hashing e hash tabelas significam e por que eles são tais partes importantes da programação. Vamos discutir o conceito de ” colisões ” e como eles podem ocorrer ao implementar tabelas de hash. Nós também irá sugerir várias abordagens para resolvê-los. Vamos olhar para a estrutura de dados abstrato ” set ” e explicar como ele pode ser implementado com um dicionário ou uma árvore equilibrada . Vamos fornecer exemplos que ilustram as aplicações dessas estruturas de dados na prática diária.

Autor do capítulo é Mihail Valkov e editores são Tsvyatko Konov e Svetlin Nakov. O conteúdo de todo o capítulo são parcialmente baseado no trabalho de Vladimir Tsanev (Tsachev ) do livro “Introdução à Programação com Java”. Tradução para Inglês: por George Mitev e George K. Georgiev (editado por Martin Gebov e Ivaylo Dyankov ).

Capítulo 19: Estruturas de Dados e Algoritmos Complexidade

No capítulo ” Estruturas de Dados e Algoritmos Complexidade ” vamos comparar as estruturas de dados que aprendemos até agora com base no seu desempenho para operações básicas (adição, buscando, exclusão, etc.) Vamos dar recomendações para as estruturas de dados mais adequados em determinados casos. Iremos explicar quando é preferível utilizar uma tabela hash , uma matriz , uma matriz dinâmica , um conjunto implementado por uma tabela hash ou uma árvore equilibrada . Há uma aplicação no .NET Framework para cada uma destas estruturas. Nós só temos que aprender a decidir quando usar uma estrutura de dados em particular, de modo que podemos escrever código-fonte eficiente e confiável.

Autores do capítulo são Nikolay Nedyalkov e Svetlin Nakov ; editor é Veselin Kolev. O conteúdo de todo o capítulo baseiam-se no trabalho de Svetlin Nakov e Nikolay Nedyalkov do livro “Introdução à Programação com Java”. Tradução para Inglês: por George Halachev e Tihomir Iliev (editado por Martin Yankov ).

Capítulo 20: Princípios programação orientada a objetos

No capítulo ” Princípios programação orientada a objetos “, vamos nos familiarizar com os princípios de programação orientada a objetos (OOP): class herança , interfaces de aplicação, de dados e comportamento de abstração , os dados de encapsulamento e escondendo detalhes de implementação, polimorfismo e métodos virtuais. Nós vamos explicar em detalhes os princípios da coesão e acoplamento . Também vamos descrever brevemente orientada a objetos modelagem e modelo de objeto de criação com base em um problema de negócios específico e vai ficar a conhecer UML e seu papel na modelagem orientada a objetos . Finalmente, discutiremos brevemente padrões de design e fornecer exemplos de padrões de design comumente utilizados na prática.

Autor do capítulo é Mihail Stoynov e editor é Mihail Valkov . O conteúdo de todo o capítulo baseiam-se no trabalho de Mihail Stoynov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Vasya Stankova e Momchil Rogelov (editado por Ivan Nenchovski ).

Capítulo 21: Código de programação de alta qualidade

No capítulo ” Código de programação de alta qualidade “, vamos dar uma olhada nas regras básicas para escrever código de programação de alta qualidade . Iremos nos concentrar em nomeando convenções para elementos do programa (variáveis, métodos, classes e outros), a formatação e diretrizes de layout de código, as melhores práticas para a criação de aulas de alta qualidade e métodos , e os princípios da documentação do código de alta qualidade. Muitos exemplos de alta qualidade e um código de baixa qualidade será dado. No decurso do trabalho será explicado como a utilização de um ambiente de desenvolvimento integrado, a fim de automatizar algumas operações, como formatação e refatorando código existente, quando é necessário. O teste de unidade como um método industrial para testes automatizados também será discutida.

Autores do capítulo são Mihail Stoynov e Svetlin Nakov . Editor é Pavel Donchev . O conteúdo de todo o capítulo são parcialmente baseado no trabalho de Mihail Stoynov, Svetlin Nakov e Nikolay Vasilev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Blagovest Buyukliev (editado por Dyanko Petkov, Mihail Stoynov e Martin Yankov ).

Capítulo 22: expressões lambda e LINQ

No capítulo ” expressões lambda e LINQ ” vamos apresentar alguns dos recursos mais sofisticados de C #. Para ser mais específico, vamos prestar atenção especial para esclarecer como fazer consultas a coleções usando expressões lambda e LINQ . Vamos explicar como adicionar funcionalidade às classes já criados, usando métodos de extensão . Vamos nos familiarizar com tipos anônimos e descrever brevemente sua natureza e uso. Também vamos discutir expressões lambda e mostrar na prática como a maior parte do trabalho built-in funções lambda. Depois vamos mergulhar na sintaxe do LINQ, que faz parte do C #. Vamos aprender o que é, como funciona e quais consultas podemos fazer usá-lo. Finalmente, discutiremos as palavras-chave em LINQ, o seu significado e vamos demonstrar as suas capacidades com um monte de exemplos.

Autor do capítulo é Nikolay Kostov e editor é Veselin Kolev. Tradução para Inglês: por Nikolay Kostov (editado por Zhasmina Stoyanova e Mihail Stoynov).

Capítulo 23: Metodologia de Resolução de Problemas

No capítulo ” Metodologia de Resolução de Problemas ” vamos discutir uma aconselhável abordagem para resolver problemas de programação e vamos ilustrar com exemplos concretos. Vamos discutir os princípios de engenharia que devemos seguir na resolução de problemas (que em grande parte se aplicam a problemas em matemática, física e outras disciplinas) e vamos mostrá-los em ação. Vamos descrever os passos que devem passar enquanto nós resolver alguns problemas de exemplo e demonstrar os erros que podem ser feitas, se não seguir estes passos. Vamos considerar alguns importantes passos de resolução de problemas (tais como testes ) que normalmente são ignorados.

Autor do capítulo é Svetlin Nakov e editor é Veselin Georgiev. O conteúdo de todo o capítulo são inteiramente baseadas no trabalho de Svetlin Nakov do livro “Introdução à Programação com Java”. Tradução para Inglês: por Ventsi Shterev e Martin Radev (editado por Tihomir Iliev e Nedjaty Mehmed ).

Capítulos 24, 25, 26: Exame programação das amostras

Nos capítulos ” Exame programação das amostras ( Tópico # 1 , Tópico # 2 e 3 Topic # )”, vamos olhar para as descrições de problemas de nove problemas de amostra de três amostras de exames de programação e vamos propor soluções para eles. No curso de resolvê-los, vamos colocar em prática a metodologia descrita no capítulo ” Metodologia de Resolução de Problemas “.

Os autores dos capítulos são Stefan Staev , Yosif Yosifov e Svetlin Nakov , respectivamente; seus respectivos editores são Radoslav Todorov, Radoslav Ivanov e Teodor Stoev . O conteúdo destes capítulos são em grande parte baseado no trabalho de Stefan Staev , Svetlin Nakov, Radoslav Ivanov e Teodor Stoev do livro “Introdução à Programação com Java”. Tradução para Inglês: por Stanislav Vladimirov , Ivaylo Gergov , Ivan Nenchovski e Ivaylo Gergov (editado por Dyanko Petkov , Vladimir Tsenev e Veselina Raykova ).

Capítulos 28: Conclusão

Na conclusão damos mais instruções de como proceder com o seu desenvolvimento como um engenheiro de software hábil após este livro. Nós explicamos os cursos gratuitos em Telerik Software Academy – o maior centro de treinamento para profissionais de desenvolvimento de software na Bulgária – como se inscrever, o que deve você aprende, como escolher uma carreira e podemos citar alguns outros recursos.

Autor do capítulo é Svetlin Nakov (com alguma ajuda por Ivan Nenchovski ). Tradução para Inglês: por Ivan Nenchovski (editado por Svetlin Nakov).

História: Como é que este livro veio a ser?

Muitas vezes, em nossos alunos prática de ensino nos perguntar de onde livro para começar a aprender a programar . Há jovens entusiastas que querem aprender programação, mas não sei por onde começar a partir. Infelizmente, é difícil recomendar um bom livro. Nós podemos chegar a muitos livros sobre C #, mas nenhum deles ensina programação. Na verdade não há muitos livros que ensinam os conceitos de programação de computadores, de pensamento e de dados estruturas algorítmicas. Certamente, há livros para iniciantes que ensinam a linguagem de programação C #, mas aqueles raramente cobrem os fundamentos da programação. Há alguns bons livros sobre programação, mas a maioria deles são agora ultrapassada e ensinar linguagens e tecnologias que se tornaram obsoletas em processo de evolução. Existem vários desses livros sobre C e Pascal, mas não C # ou Java. Considerando todos os aspectos, é difícil chegar com um bom livro que poderíamos recomendo para quem quer pegar a programação a partir do zero.

Em um ponto a falta de bons livros sobre programação para iniciantes levou o líder do projeto, Svetlin Nakov, para reunir um grupo de autores estabelecidos para finalmente escrever tal livro. Decidimos que poderia ajudar muitos jovens a assumir a programação a sério por compartilhar nosso conhecimento e inspirando-os.

As origens deste livro

Este livro é, na verdade, uma adaptação ao C # do livro Bulgarian livre ” Introdução à Programação com Java “, com algum conteúdo adicional acrescentado, muitas correções de bugs e pequenas melhorias, traduzido posteriormente para o Inglês.

Svetlin Nakov ensina programação de computador, estruturas de dados, algoritmos e tecnologias de software desde 2000. Ele é um autor e co-autor de vários cursos em fundamentos da programação ensinadas na Universidade de Sofia (a mais prestigiosa universidade búlgara neste momento). Nakov (com colegas) ensina programação e desenvolvimento de software na Faculdade de Matemática e Informática (FMI) na Universidade de Sofia há alguns anos e, posteriormente, cria sua própria companhia para engenheiros de software de treinamento. Em 2005, ele reúne e lidera uma equipe de voluntários que cria um sólido currículo em fundamentos de programação e estruturas de dados (em C #) com apresentação de slides e muitos exemplos, demonstrações e trabalhos de casa. Estes materiais de ensino são o primeiro esboço muito inicial do conteúdo deste livro. Mais tarde este currículo evolui e é traduzido para Java e serve como base para a versão Java deste livro. Mais tarde, o livro Java é traduzido para C # e depois de seu grande sucesso na Bulgária (cópias milhares de papel vendidos e 50.000 downloads) é traduzido de Búlgaro para Inglês.

O Fundamentos de Programação Java Livro

Em meados de 2008 Svetlin Nakov é inspirado para criar um livro sobre programação Java, cobrindo sua “Introdução à programação” é claro na Academia Nacional de Desenvolvimento de Software (um centro de treinamento privado na Bulgária, fundada por Svetlin Nakov). Ele e um grupo de autores descrevem o trabalho que precisa ser feito e os assuntos que precisam ser cobertos e trabalho começa, com todos trabalhando de forma voluntária, sem qualquer lucro direto . Através de atrasos, armadilhas e melhorias, o livro Java finalmente sai em janeiro de 2009. Ele está disponível tanto em seu site www.introprogramming.info de graça, e em uma edição de papel.

O Fundamentos de programação C # Livro

O interesse para a “Introdução à Programação com Java” livro é enorme (para a Bulgária). No final de 2009 o projeto para “traduzir” o livro para C # começa, sob o título ” Introdução à Programação com C # “. Mais uma vez, um grande número de autores, novos e do grupo do livro Java, reunir e começar a trabalhar. A tarefa parece mais fácil, mas torna-se demorado. Cerca de metade de um ano depois, a edição de “preview” do livro é concluída – com alguns erros e conteúdo incorreto. Mais um ano passa como todo o texto e os exemplos são melhoradas, e novo conteúdo é adicionado. No verão de 2011 o livro C # é liberado . Seu site oficial permanece o mesmo como o livro Java ( www.introprogramming.info ). A versão em papel do livro também é liberado e vendido, com um preço que cobre apenas as despesas com a sua impressão.

Ambos os livros são open-source e seus repositórios estão disponíveis no Google Code: code.google.com/p/introcsharpbook , code.google.com/p/introjavabook .

A Tradução do Livro # C: Búlgaro para Inglês

No final de 2011, após o grande sucesso de “Introdução à Programação com C #”, um projeto para traduzir o livro para Inglês começou. Grande grupo de voluntários começou a trabalhar na tradução – cada um deles com bons conhecimentos de programação. O livro que você está lendo é o resultado da tradução bem sucedida, revisão e conclusão do livro búlgaro original C #. O mais esforço na tradução foi dada pelo autor principal Svetlin Nakov .

Alguns dos autores têm ideias para fazer mais uma adaptação do livro – desta vez para C ++ . A partir de agora, essas idéias ainda estão nevoeiro. Esperamos que um dia vai se tornar uma realidade, mas não estamos prometendo nada ainda.

Bulgária? Autores búlgaros? Isso é verdade?

A Bulgária é um país da Europa , parte da União Europeia , assim como a Alemanha ea França. Você sabia disso? A Bulgária tem tradições muito sólidos na programação e tecnologias de computador.

A principal inventor da tecnologia por trás dos computadores digitais modernas é o famoso engenheiro de computação John Atanasoff e ele é 50% Búlgaro (veja en.wikipedia.org/wiki/John_Vincent_Atanasoff ).

A Bulgária é o fundador da Olimpíada Internacional de Informática (IOI) . O primeiro IOI foi organizada e realizada em 1980 em Pravetz , Bulgária (ver en.wikipedia.org/wiki/International_Olympiad_in_Informatics ).

Em 2011 Bulgária foi classificado # 3 do mundo pela velocidade da Internet (ver http://mashable.com/2011/09/21/fastest-download-speeds-infographic ).

Principal fornecedora de componentes do mundo para o ecossistema Microsoft é uma companhia búlgara chamada Telerik ( www.telerik.com ) e quase todos os seus produtos são desenvolvidos na Bulgária. Produto de software líder mundial para renderização 3D (V-Ray), usado na maioria dos filmes de Hollywood e pela maioria dos produtores de automóveis, é inventado e desenvolvido na Bulgária por outra empresa búlgaro – Grupo Chaos ( www.chaosgroup.com ). A empresa búlgara DATECS concebido e produz o scanner de código de barras com furto do cartão de crédito para Apple iPhone / iPad / dispositivos iPod utilizados em todas as lojas da Apple. As grandes empresas internacionais de software como SAP , VMware , HP , Cisco , Siemens e CSC tem centros de desenvolvimento de grandes em Sofia com milhares de desenvolvedores.

engenheiros de software búlgaros podem ser encontrados em todas as grandes empresas de software na indústria de software como a Microsoft, Google, Oracle, SAP, Facebook, Apple, IBM, Cisco, Siemens, VMware, HP, Adobe, Nokia, Ericsson, Autodesk, etc.

Nós, os autores, editores e tradutores deste livro são todos os desenvolvedores de software búlgaro orgulhoso – um pouco de vida na Bulgária, outros no exterior. Estamos felizes em ser uma parte da indústria global de software e para ajudar os iniciantes no mundo inteiro para aprender programação de computadores e tornar-se engenheiros de software hábeis. Somos partidários de a cultura do ensino gratuito (como Coursera, EDX, Udacity e Khan Academy), uma educação gratuita para todos e em todos os lugares. Estamos felizes em compartilhar nossos conhecimentos, competências e conhecimentos e partilha é parte da nossa cultura .

Autores e colaboradores

Este livro é feita por desenvolvedores voluntários da Bulgária que querem compartilhar seus conhecimentos e habilidades sobre programação de computadores. Eles trabalharam durante meses (alguns anos) gratuitamente para ajudar a comunidade a aprender programação , estruturas de dados e algoritmos de maneira fácil e eficiente: através deste livro e as apresentações e tutoriais em vídeo que vêm com ele.

Mais de 70 pessoas contribuíram para o projeto: autores, editores, tradutores, etc.

O Painel de Autores

O painel de autores de ambos os antigos, o novo eo traduzido para Inglês livro, é de fato o principal perpetrador para a existência deste livro. Escrever conteúdo deste tamanho e qualidade é uma tarefa séria exigindo muito tempo.

A idéia da participação de tantos autores foi bem testado, uma vez que alguns outros livros já foram escritos de maneira semelhante (por exemplo, “A programação para o .NET Framework” – partes 1 e 2 ). Apesar de todos os capítulos do livro são escritos por diferentes autores, que respeitem o mesmo estilo e possuem a mesma alta qualidade de conteúdo (embora possa variar um pouco em alguns capítulos). O texto está bem estruturado, tem muitos títulos e subtítulos, contém muitos exemplos apropriados, segue uma boa maneira de expressão e é uniformemente formatado.

A equipe que escreveu este livro é composta de pessoas que estão fortemente interessados em programação e gostaria de compartilhar voluntariamente seus conhecimentos, participando, por escrito, um ou mais dos capítulos. A melhor parte é que todos os autores, co-autores e editores na equipe de trabalho sobre o livro são programadores trabalhando com experiência prática, o que significa que o leitor irá receber o conhecimento, uma coleção de melhores práticas e conselhos por pessoas com uma ativa carreira na indústria de software.

Os participantes do projeto fez sua contribuição voluntariamente, sem material ou qualquer outra compensação direta, porque eles apoiaram a ideia de escrever um bom livro para programadores iniciantes e porque eles queriam fortemente para ajudar os seus futuros colegas entrar na programação rapidamente.

O que se segue é uma breve apresentação dos autores do livro “Introdução à Programação com C #” (em ordem alfabética). Os autores originais dos capítulos correspondentes do livro “Introdução à Programação com Java” são mencionados nesse sentido, uma vez que as suas contribuições para alguns capítulos são maiores do que aqueles autores que adaptou o texto e exemplos para C # depois.

Dilyan Dimitrov

Dilyan Dimitrov é um desenvolvedor de software certificado com experiência profissional na construção de grandes sistemas baseados na web mid-size e com o .NET Framework. Seus interesses incluem o desenvolvimento de aplicações web e desktop usando as mais recentes tecnologias da Microsoft. Formou-se em “Informática” na Faculdade de Matemática e Informática da Universidade Sofia “St. Kliment Ohridski”. Ele pode ser alcançado em dimitrov.dilqn@gmail.com ou você pode visitar o seu blog pessoal no http://dilyandimitrov.blogspot.com .

Hristo Germanov

Hristo Germanov é um engenheiro de software, cujos interesses são principalmente relacionados com as tecnologias .NET. Arquitetura e design de sistemas baseados na web, algoritmos e padrões modernos de código de qualidade também são a sua paixão. Ele tem participado no desenvolvimento de pequenas e grandes baseado na web e aplicativos baseados em desktop. Ele gosta de problemas e projetos que requerem raciocínio lógico forte desafiadoras. Formou-se em “Redes de Computadores” na Faculdade Omega em Plovdiv e especializada como um “Núcleo Desenvolvedor .NET” na Academia Nacional de Desenvolvimento de Software em Sofia.

Você pode contatá-lo por e-mail para: hristo.germanov@gmail.com .

Iliyan Murdanliev

Tsvyatko Konov

Tsvyatko Konov é um desenvolvedor de software sênior e instrutor com interesses e experiências variadas. Ele é competente em domínios como a integração de sistemas, construção de arquiteturas de software, desenvolvimento de sistemas com uma série de tecnologias, como o .NET Framework , ASP.NET, Silverlight, WPF, WCF RIA, MS SQL Server, Oracle, MySQL, PostgreSQL e PHP. Sua experiência como instrutor inclui uma grande variedade de cursos – cursos para iniciantes e especialistas em tecnologias .NET, bem como cursos de especialização em tecnologias individuais, tais como ASP.NET, Oracle, .NET Compact Framework, “código de programação de alta qualidade” e outros. Tsvyatko fazia parte das equipa dos autores do livro “Introdução à programação com Java”. Seus interesses profissionais incluem tecnologias de web-based e baseada em desktop, tecnologias web orientados para o cliente, bancos de dados e padrões de projeto.

Tsvyatko Konov tem um blog técnico: http://www.konov.me .

Veselin Georgiev

Veselin Georgiev é uma co-fundador da conduzi-la ( www.leadittraining.com ) e desenvolvedor de software na Abilitics ( www.abilitics.com ). Ele tem um mestrado em “E-Business e E-Governance” na Universidade Sofia “St. Kliment Ohridski”, após a obtenção do grau de bacharel em “Informática” na mesma universidade.

Veselin é um Microsoft Certified Trainer e Microsoft Certified Professional Developer. Ele lecionou nas conferências da Microsoft Tech Days de 2011 e 2009, também participa como instrutor de vários cursos na Universidade de Sofia. Ele é um professor experiente que tem treinado especialistas em software para trabalhar trabalhos práticos na indústria de TI.

Seus interesses profissionais são orientados para arquiteturas de formação, SharePoint e software. Ele pode ser alcançado em veselin.vgeorgiev@gmail.com .

Veselin Kolev

Veselin “Vesko” Kolev é um engenheiro de software líder com experiência profissional de muitos anos. Ele já trabalhou em várias empresas onde ele gerenciou equipes eo desenvolvimento de muitos projetos de software diferentes. Como um estudante do ensino médio, ele participou de uma série de competições nas áreas de matemática, ciência da computação e tecnologia da informação, onde terminou em locais de prestígio. Ele atualmente especializações em “Computer Science”, na Faculdade de Matemática e Informática da Universidade Sofia “St. Kliment Ohridski”.

Vesko é um professor experiente que já trabalhou em especialistas em software de treinamento para trabalhos práticos na indústria de TI. Ele é um instrutor na Faculdade de Matemática e Informática da Universidade Sofia “St. Kliment Ohridski”, onde ele corre cursos sobre “Java Modern Technologies” e “código de programação de alta qualidade”. Proferiu palestras semelhantes na Universidade Técnica de Sofia.

De Vesko principais interesses incluem design de projetos de software, desenvolvimento de sistemas de software, .NET tecnologias e Java, Win32 de programação (C / C ++), arquiteturas de software, padrões de projeto, algoritmos , bases de dados, equipe e gestão de projetos de software, treinamento de especialistas. Os projetos que ele já trabalhou em incluir sistemas de grandes baseado na Web, aplicações móveis, OCR, sistemas de tradução automática, software econômica e muitos outros. Vesko é um co-autor do livro “Introdução à programação com Java”.

Vesko trabalha no desenvolvimento de aplicações baseadas Silverlight e WPF em Telerik ( www.telerik.com ). Ele compartilha partes de suas experiências do dia-a-dia on-line em seu blog pessoal na http://veskokolev.blogspot.com .

Yordan Pavlov

Yordan Pavlov tem um bacharelado e um mestrado em “Sistemas e Tecnologias de computador” da Universidade Técnica de Sofia. Ele é um desenvolvedor de software na Telerik ( www.telerik.com ) com uma extensa experiência em desenvolvimento de componentes de software.

Seus interesses se encontram principalmente nos seguintes campos: projeto orientado a objetos, padrões de projeto, desenvolvimento de software de alta qualidade , sistemas de informação geográfica (SIG), o processamento paralelo e computação de alto desempenho, inteligência artificial, gerenciamento de equipes.

Yordan ganhou o Imagine Cup 2008 finais na Bulgária na categoria design de software, assim como as finais mundiais em Paris, onde ganhou prestígio “O Prêmio Excelência em Engenharia” da Microsoft. Ele já trabalhou com engenheiros da Microsoft na sede da empresa, em Redmond, EUA, lugar onde ele adquiriu conhecimento e experiência útil no desenvolvimento de sistemas de software complexos.

Yordan também recebeu uma marca dourada de “Contribuições para a Inovação e Informação Juvenil Society”. Ele tem participado em muitos concursos e Olimpíadas em programação e informática.

Yordan blog pessoal pode ser encontrada em http://yordanpavlov.blogspot.com . Ele pode ser contatado pelo e-mail: iordanpavlov@gmail.com .

Yosif Yosifov

Yosif Yosifov é um desenvolvedor de software sênior na Telerik ( www.telerik.com ). Seus interesses consistem principalmente de tecnologias .NET , padrões de projeto e de computador algoritmos . Ele tem participado em numerosos concursos e Olimpíadas em programação e informática. Atualmente, ele exerce um grau de bacharel em “Computer Science”, na Faculdade de Matemática e Informática da Universidade Sofia “St. Kliment Ohridski”.

De Yosif blog pessoal pode ser encontrada em http://yyosifov.blogspot.com . Ele pode ser contatado pelo e-mail: cypressx@gmail.com .

Os Autores Java Livro

Este livro # fundamentos de programação C é baseado a sua versão Java originais , o livro ” Introdução à Programação com Java “. Graças aos autores de livros originais Java para seu trabalho. Eles têm contribuição significativa para quase todos os capítulos do livro. Alguns capítulos são inteiramente baseado em seu trabalho, alguns parcialmente, mas em todos os casos, a sua obra original é a origem principal deste livro:

  • Boris Valkov
  • Danail Aleksiev
  • Hristo Todorov
  • Lachezar Bozhkov
  • Luchesar Cekov
  • Marin Georgiev
  • Mario Peshev
  • Mariyan Nenchev
  • Mihail Stoynov
  • Nikolay Nedyalkov
  • Nikolay Vasilev
  • Petar Velev
  • Radoslav Ivanov
  • Rumyana Topalska
  • Stefan Staev
  • Svetlin Nakov
  • Teodor Stoev
  • Vesselin Kolev
  • Vladimir Tsanev
  • Yosif Yosifov

os editores

Além dos autores, uma contribuição significativa para a realização deste livro foi feita pelos editores que voluntariamente participaram na revisão do texto e os exemplos e corrigindo erros e outros problemas:

  • Dilyan Dimitrov
  • Doncho Minkov
  • Hristo Radkov
  • Iliyan Murdanliev
  • Marin Georgiev
  • Mihail Stoynov
  • Mihail Valkov
  • Mira Bivas
  • Nikolay Kostov
  • Nikolay Vasilev
  • Pavel Donchev
  • Radoslav Ivanov
  • Radoslav Kirilov
  • Radoslav Todorov
  • Stanislav Zlatinov
  • Stefan Staev
  • Svetlin Nakov
  • Teodor Bozhikov
  • Tsvyatko Konov
  • Veselin Georgiev
  • Veselin Kolev
  • Yosif Yosifov

os Tradutores

Este livro seria deixado em búlgaro por muitos anos se esses caras não receberam seus voluntários trabalham para traduzi-lo em Inglês :

  • anjo Angelov
  • Atanas Valchev
  • Blagovest Buyukliev
  • Boyan Dimitrov
  • Dimitar Bonev
  • Doroteya Agayna
  • Dyanko Petkov
  • Franz Fischbach
  • George Halachev
  • George K. Georgiev
  • George S. Georgiev
  • Georgi Mitev
  • Georgi Todorov
  • Georgi Vaklinov
  • Hristo Radkov
  • Ivan Nenchovski
  • Ivaylo Dyankov
  • Ivaylo Gergov
  • Zhasmina Stoyanova
  • Kristian Dimitrov
  • Lora Borisova
  • Martin Gebov
  • Martin Radev
  • Martin Yankov
  • Momchil Rogelov
  • Nedjaty Mehmed
  • Nencho Nenchev
  • Nikolay Angelov
  • Nikolay Kostov
  • Pavel Benov
  • Radoslav Todorov
  • Stanislav Vladimirov
  • Svetlin Nakov
  • Teodor Rusev
  • Tihomir Iliev
  • Todor Mitev
  • Vasya Stankova
  • Ventsi Shterev
  • Vesselin Georgiev
  • Vesselina Raikova
  • Vladimir Amiorkov
  • Vladimir Tsenev
  • Yoan Krumov
  • Zhelyazko Dimitrov

Muito obrigado a George S. Georgiev , que foi seriamente envolvidos no processo de tradução e edição do texto traduzido para a maioria dos capítulos.

Muito obrigado a Hristo Radkov que é proficiente em Inglês (vive e trabalha em Londres por muitos anos) e que editaram e corrigida a tradução dos primeiros capítulos.

outros Contribuintes

Os autores também gostaria de agradecer Kristina Nikolova por seus esforços na elaboração de design da capa do livro. Grandes graças a Viktor Ivanov para este trabalho sobre o projeto web site .

O livro é gratuito!

O presente livro é distribuído absolutamente gratuitamente em formato electrónico sob uma licença que concede ao seu uso para todos os tipos de fins, incluindo projetos comerciais. O livro também é distribuído em formato de papel para uma carga, cobrindo os custos de impressão e distribuição, sem qualquer lucro.

Rever

Se você não confia plenamente os autores que escreveram este livro, você pode ter inspiração de seus comentários escritos por especialistas no mundo inteiro principais , incluindo engenheiros de software da Microsoft, Google, Oracle, SAP e VMware.

Revisão por Nikola Mihaylov , Microsoft

Programação é uma coisa incrível! As pessoas têm tentado por centenas de anos para tornar sua vida mais fácil, a fim de trabalhar menos. Programação permite que a tendência da humanidade para a preguiça para continuar. Se você é um anormal de computador ou se você gostaria apenas para impressionar os outros com um bom site ou algo de seu “nunca visto -antes” então você é bem-vindo. Não importa se você faz parte do grupo relativamente pequeno de “freaks” que desça ao encontrar um programa bom ou se você gostaria apenas de se realizar profissionalmente e conduzir a sua vida fora do trabalho, este livro é para você .

Os conceitos fundamentais do motor de um carro não mudaram em anos – algo dentro de queima (gás, óleo ou qualquer outra coisa que você encheu-o com) eo carro rola junto. Da mesma forma, os conceitos de programação não foram alterados durante anos. Se você escrever o vídeo game seguinte, software de gestão de dinheiro em um banco ou você programar a “mente” de um novo robô bio, você vai usar – com absoluta certeza – os conceitos e as estruturas de dados descritas neste livro .

Neste livro você encontrará uma grande parte dos fundamentos da programação . Um livro fundamental analógica na indústria automobilística seria intitulado “motores de combustão interna”.

Faça o que fizer, é mais importante para se divertir ! Antes de começar a ler este livro, pense em algo que você gostaria de fazer como programador – um site, um jogo ou algum outro programa! Enquanto lê o livro, pense em como e que a partir do material que você leu você usaria em seu programa! Se você encontrar algo interessante, você iria aprender-lo facilmente!

Meu primeiro programa (da qual eu me orgulho bastante para falar de em público) foi simplesmente desenhar na tela usando as setas do teclado. Levei algum tempo para escrevê-lo na época, mas quando foi feito, eu gostei. Desejo-lhe isto: pode você gosta de tudo relacionado à programação! Tenha uma boa leitura e uma realização profissional bem sucedido!

Nikola Mihaylov é um engenheiro de software da Microsoft na equipe de desenvolvimento Visual Studio. Ele é o autor do site http://nokola.com e é facilmente “ligado” com o tema da programação; ele está sempre pronto quando é necessário escrever algo positivo! Ele adora ajudar as pessoas com perguntas e um desejo para a programação, não importa se eles são iniciantes ou experts. Quando em necessidade, entre em contato com ele pelo e-mail: nokola@nokola.com .

Revisão por Vassil Bakalov , Microsoft

“Introdução à Programação com C #” é um esforço corajoso para não só ajudar o leitor a fazer os seus primeiros passos na programação, mas também para apresentá-los com o ambiente de programação e treinar para as tarefas práticas que ocorrem em um programador do dia-a-dia vida . Os autores encontraram uma boa combinação de teoria – para passar sobre o conhecimento necessário para a escrita e leitura de código de programação – e prática – todos os tipos de problemas, cuidadosamente selecionados para assimilar o conhecimento e para formar um hábito no leitor a pensar sempre do solução eficaz para o problema, para além do sintaxe ao escrever programas.

A linguagem de programação C # é uma boa escolha, porque é uma linguagem elegante através do qual a representação do programa na memória do computador é de nenhum interesse para nós e podemos nos concentrar em melhorar a eficiência ea elegância do nosso programa.

Até agora eu não encontrei um livro de programação que apresenta seu leitor com a linguagem de programação e desenvolve suas habilidades para resolver problemas , ao mesmo tempo. Estou feliz agora que há um livro e tenho certeza que será de grande utilidade para futuros programadores.

Vassil Bakalov é um engenheiro de software da Microsoft Corporation (Redmond) e um participante no projeto para o primeiro livro Bulgarian for .NET: “A programação para o .NET Framework”. Seu blog está localizada em: http://bakalov.com .

Revisão por Vassil Terziev, Telerik

Folhear o livro, eu me lembrei do tempo, quando eu estava fazendo meus primeiros passos em programação PHP . Ainda me lembro do livro que eu aprendi com – quatro autores, conteúdos muito desorganizado e incoerente e exemplos elementares nos capítulos de especialistas e exemplos complicados nos capítulos para iniciantes, convenções de codificação diferentes e ênfase apenas na plataforma e da linguagem e não sobre a forma para usá-los de forma eficiente para escrever aplicativos de alta qualidade.

Estou muito contente que “Introdução à Programação com C #” tem uma abordagem totalmente diferente . Tudo é explicado em uma maneira fácil de entender , mas com a profundidade necessária, e cada capítulo passa a estender-se lentamente que os anteriores. Como um espectador por fora, eu era uma testemunha dos esforços postos em escrever o livro e eu estou feliz que essa imensa energia e desejo de criar um livro mais diferentes realmente se materializou em um assunto de muito alta qualidade.

Espero sinceramente que este livro será útil para os seus leitores e que irá proporcionar-lhes uma base forte para encontrar os seus pés, uma base que irá conectá-los a um desenvolvimento profissional na área de programação de computadores e que irá ajudá-los a fazer um início mais indolor e qualitativa.

Vassil Terziev é um dos fundadores e CEO da Telerik Corporation, fornecedora líder de ferramentas e componentes de programação para .NET, HTML5 e desenvolvimento móvel. Seu blog está localizado na http://blogs.telerik.com/vassilterziev/ . Você pode contatá-lo a qualquer momento que quiser, e-mail: terziev@telerik.com .

Revisão por Veselin Raychev , Google

Talvez até mesmo sem ler isso, você vai ser capaz de trabalhar como desenvolvedor de software, mas eu acho que você vai encontrá-lo muito mais difícil.

Já vi casos de reinventar a roda, muitas vezes em uma forma pior do que a melhor na teoria e toda a equipe sofre principalmente a partir deste. Todo mundo comprometidos com a programação deve, mais cedo ou mais tarde ler o que a complexidade algoritmo é, o que é uma tabela hash é, o que busca binária é e quais são as melhores práticas para a utilização de padrões de projeto são. Por que você não começar neste momento lendo este livro?

Há muitos livros sobre C # e muito mais sobre a programação. As pessoas iriam dizer sobre muitos deles que eles são os melhores guias, a maneira mais rápida de entrar no balanço da língua. Este livro difere de outros, principalmente porque ele vai mostrar o que você precisa saber para alcançar o sucesso e não o que as voltas e reviravoltas de uma determinada linguagem de programação é. Se você encontrar os tópicos abordados neste livro desinteressante, em seguida, engenharia de software, eventualmente, não ser para voce.

Veselin Raychev é um engenheiro de software do Google, onde ele trabalha no Google Maps e Google Translate. Ele já trabalhou na Motorola Biometrics e Metalife AG.

Veselin ganhou elogios em vários concursos nacionais e internacionais e recebeu uma medalha de bronze na Olimpíada Internacional de Informática (IOI) na Coreia do Sul de 2002, e uma medalha de prata na Olimpíada de Balkan em Informática (BOI). Ele representou a Universidade de Sofia “St. Kliment Ohridski” duas vezes nas finais mundiais em ciência da computação (ACM ICPC) e lecionou em vários cursos opcionais na Faculdade de Matemática e Informática da Universidade de Sofia.

Revisão por Vassil Popovski, VMware

Como um empregado em uma posição gerente da VMware e pelo Sciant antes disso, eu muitas vezes têm de realizar entrevistas técnicas para candidatos a emprego na nossa empresa. É surpreendente como muitos dos candidatos para os cargos de engenharia de software que chegam até nós para uma entrevista não sei como uma tabela hash funciona , não ouvi de complexidade algoritmo, não é possível classificar uma matriz ou classificá-lo com uma complexidade de O (n 3 ). é difícil de acreditar que a quantidade de programadores autodidatas que não dominam os fundamentos da programação que você vai encontrar neste livro. Muitas pessoas que exerçam esta profissão desenvolvedor de software, não estão familiarizados com as estruturas de dados mais básicos em programação e não sabe como percorrer uma árvore usando recursão. Leia este livro, para que você não vai ser como essas pessoas! É o primeiro livro que você deve começar com durante a sua formação como um programador. O conhecimento fundamental de estruturas de dados , algoritmos e resolução de problemas será necessário para que você possa construir o seu portador em engenharia de software com sucesso e, é claro, para ser bem sucedido em entrevistas de trabalho e local de trabalho depois.

Se você começar com a criação de sites dinâmicos usando bases de dados e AJAX sem saber o que uma lista, árvore ou hash de tabela vinculada é, um dia você vai descobrir o que as lacunas fundamentais existem no seu conjunto de habilidades. Você tem que fazer um tolo de si mesmo em uma entrevista de emprego, na frente de seus colegas ou na frente de seu superior quando se torna claro que você não sabe o propósito de um código de hash, ou como o List <T> estrutura funciona ou como pastas no disco rígido são percorridos de forma recursiva?

A maioria dos livros de programação irá ensiná-lo a escrever programas simples, mas eles não vão levar em consideração a qualidade do código de programação . É um tema a maioria dos autores encontrar sem importância, mas escrever código de alta qualidade é uma habilidade básica que separa os programadores capazes de os medíocres. Ao longo dos anos você pode descobrir as melhores práticas de si mesmo, mas você tem que aprender por tentativa e erro? Este livro vai lhe mostrar o caminho certo a seguir o caminho mais fácil – dominar a estruturas de dados e algoritmos básicos ; aprender a pensar corretamente ; e escrever seu código com alta qualidade . Desejo-lhe benéfico estudar.

Vassil Popovski é um arquiteto de software da VMware Bulgária, com mais de 10 anos de experiência como desenvolvedor Java. No VMware Bulgária ele trabalha no desenvolvimento de sistemas de Enterprise Java escaláveis. Ele já trabalhou como gerente sênior da VMware Bulgária, como diretor técnico da Sciant e como líder da equipe na SAP Labs Bulgária.

Panayot Dobrikov é diretor de programa no SAP AG e co-autor do livro . “Programação = ++ Algorithms;” Você pode descobrir mais sobre ele em seu site pessoal: http://indyana.hit.bg .

Revisão por Lyubomir Ivanov, Mobiltel

Se alguém tivesse me dito 5 ou 10 anos atrás, que há um livro a partir do qual a aprender as noções básicas de gestão de pessoas e projetos – orçamentação, finanças, psicologia, planejamento, etc., eu não teria acreditado. Eu nem acredito que eles neste momento. Para cada um destes temas há dezenas de livros que devem ser lidos.

Se alguém tivesse me dito que há um livro a partir do qual podemos aprender os fundamentos da programação essencial para qualquer desenvolvedor de software – Eu ainda não teria acreditado.

Lembro-me de meu tempo como um programador iniciante e um estudante universitário – Eu estava lendo vários livros sobre linguagens de programação, vários outros em algoritmos e estruturas de dados, e um terceiro conjunto de livros sobre como escrever código de alta qualidade. Muito poucos deles me ajudou a pensar através de algoritmos e elaborar uma abordagem para resolver os problemas diários que me deparei em minha prática. Nenhum deles me deu uma visão geral de tudo o que eu tinha que saber como programador de computador e um engenheiro de software. As únicas coisas que me ajudaram estavam sendo teimoso e reinventar a roda.

Hoje eu li este livro e eu estou feliz que, finalmente, embora um pouco tarde demais para mim, alguém desceu para escrever o livro que vai ajudar qualquer programador novato resolver o enigma da programação – uma linguagem de programação moderna, estruturas de dados, código de qualidade , pensamento e resolução de problemas algorítmica. Este é o livro que você deve tomar a programação a partir, se você quiser dominar a arte da programação de qualidade. Se você escolher o Java ou C # versão deste livro realmente não importa. O que importa é que você deve aprender a pensar como programador e resolver os problemas que você encontrar ao escrever software; a linguagem de programação é apenas uma ferramenta que você pode mudar para outra em um determinado momento.

Este livro não é apenas para principiantes . Mesmo programadores com muitos anos de experiência pode aprender alguma coisa com ele. Eu recomendo a todos os desenvolvedores de software que gostariam de perceber o que eles não sabiam até agora.

Tenha um tempo de leitura agradável!

Lyubomir Ivanov é o gerente do departamento “de dados e aplicações móveis” no Mobiltel EAD (parte da Mobilkom Austria) onde ele se dedica ao desenvolvimento e integração de soluções de TI para a indústria de telecomunicações.

Revisão por Hristo Deshev, Empresário

É surpreendente o que uma grande porcentagem de programadores não prestar atenção às pequenas coisas como nomes de variáveis e estrutura de código bom . Essas coisas se acumulam e, no final, fazer a diferença entre uma peça bem escrita de software e uma tigela de espaguete. Este livro ensina disciplina e “higiene” no código escrito juntamente com os conceitos básicos de programação e que, sem dúvida, torná-lo um profissional .

Hristo Deshev , artesão software

Revisão por Hristo Radkov , inteligente TI (Londres, Reino Unido)

Fantastic livro! Ele dá o início para todo o totó do desenvolvedor que quer tornar-se um prodígio software. Enquanto você pode aprender a partir dos livros de aprendizagem rápidas para manequins para fazer a codificação que “simplesmente funciona” e este é o nível esperado em muitas das pequenas casas de desenvolvimento de software ao redor, você nunca pode deixar um rastro no mundo do software sem compreender os conceitos fundamentais da programação . Sim, você ainda pode desenvolver aplicações de software e usar as guloseimas do framework .NET, mas apenas usar e não criar ou inovar .

Se você gostaria de nunca alcançar a excelência arquitectónica e ser capaz de confiança e dizer com orgulho de ter desenvolvido um bom pedaço de software que vai ficar lá e servir o seu propósito durante anos, você precisa entender como as tecnologias que você usa em directo de todos os dias (por exemplo, ASP.NET, MVC, WPF, WCF, LINQ, biblioteca paralela de Sockets, Task) trabalho, mas como eles foram desenvolvidos e otimizados para se tornar o que são. Só então você economizar um tempo precioso na busca de como fazer as coisas de forma eficiente com essas tecnologias, pois esse conhecimento irá, naturalmente, vir de o que você aprendeu com este livro . E o mesmo se aplica para a compreensão do amplamente recomendada no mundo da programação de hoje projetar padrões, arquiteturas e técnicas.

O livro vai permitir que você prepare-se para pensar, design e programa de forma otimizada como um conceito e de mentalidade com qualquer linguagem orientada a objetos que você nunca pode usar não apenas C # ou .NET Framework.

Muitos sistemas bancários aqui em Londres tem uma exigência principal para ser servidores de dados “em tempo real” para milhares de usuários com atrasos mínimos e interrupções, e este livro fornece os fundamentos que se você não tiver você não pode trabalhar em tais sistemas com sucesso, nunca.

Este conhecimento fundamental distingue o desenvolvedor excelente e realizado, cujo código raramente exigiria otimizações e, portanto, reduzir os custos directos e indirectos ao seu empregador dos desenvolvedores em geral que, infelizmente, são a parte predominante dos programadores que você iria encontrar em sua carreira. Os especialistas realizados evoluir e progredir em altos cargos muito mais fácil quando se tem os argumentos técnicos e a mentalidade de ser criativo e visionário, evitando as dificuldades de limitações fosso tecnológico a massa em torno de você ter.

Assim, ler o livro com cuidado e diligentemente para se tornar um!

Hristo Radkov é um arquiteto de software e Chief Co-fundador de inteligente de TI , um de serviços de software, melhores práticas de codificação e arquitectura empresa de consultoria com sede em Londres, Reino Unido. Com mais de 15 anos de experiência como desenvolvedor, líder da equipe, gerente de Desenvolvimento, chefe de TI e Software Architect ele tem feito projetos profissionalmente com C ++, Java e C #, eventualmente, permanecendo completamente no lado das Tecnologias Microsoft após a primeira liberação de .NET Framework , tornando-se reconhecida pela indústria da Microsoft tecnologia de software de Desenvolvimento e Boas Práticas de Programação Avançada Nuvem, com MCPD, MCSD.NET, MCDBA e MCTS prêmios. Hristo é co-autor dos livros A programação para o .NET Framework (vol. 1 e 2) ” e foi instrutor para .NET e Design Patterns por muitos anos. Sua empresa inteligente que está consultando principais instituições financeiras e FTSE 100 empresas com avaliações multibilionárias nas bolsas de valores do mundo Stock. Você pode encontrar mais sobre ele em www.radkov.com ou vinculados-in no Hristo Radkov . Para contatá-lo, use o endereço de e-mail: hradkov@clevit.com .

Licença

O livro e todos os seus materiais de estudo são distribuídos gratuitamente sob a seguinte licença :

Definições comuns

  1. A presente licença define os termos e condições de utilização e distribuição dos ” materiais de estudo ” e do livro “Fundamentos da Programação de Computadores com C #” , desenvolvido por uma equipe de voluntários sob a orientação de Svetlin Nakov ( nakov.com ) .
  2. Os materiais de estudo consistem em:
  • o livro (livro) em “Fundamentos da Programação de Computadores com C #”
  • código fonte de amostra
  • programas de demonstração
  • problemas de exercício
  • slides da apresentação
  • materiais de vídeo
    1. Os materiais de estudo estão disponíveis para download gratuito de acordo com os termos e condições especificados nesta licença no site oficial do projeto: introprogramming.info .
    2. Os autores dos materiais de estudo são as pessoas que participaram na sua criação.
    3. Usuário dos materiais de estudo é qualquer um que utiliza ou acessa esses materiais ou partes deles.

Direitos e Limitações dos Usuários

  1. Os usuários may :
  • distribuir free of charge cópias inalteradas dos materiais de estudo em formato eletrônico ou em papel;
  • usar os materiais de estudo ou partes deles, incluindo os exemplos, demonstrações, exercícios e slides de apresentação ou suas modificações, para todos os efeitos, incluindo projetos educacionais e comerciais , desde que claramente especifica a fonte original , o autor original do (s) o código de texto ou fonte correspondente, esta licença eo site introprogramming.info ;
  • distribuir gratuitamente porções dos materiais de estudo ou modificadas cópias deles (incluindo sua tradução em outros idiomas ou adaptá-los para outras linguagens de programação e plataformas), mas apenas por mencionar explicitamente a fonte original e os autores do texto, o código-fonte correspondente ou outro material, esta licença e no site oficial do projeto: introprogramming.info .
    1. Os usuários não podem :
  • distribuir para lucro os materiais de estudo ou partes deles, com exceção do código-fonte;
  • remover esta licença a partir dos materiais de estudo, quando modificando-os para as necessidades próprias.

Direitos e Limitações dos Autores

  1. Cada autor tem direitos não exclusivos sobre os produtos da sua / seu próprio trabalho que contribuem para construir os materiais de estudo.
  2. Os autores têm o direito de usar os produtos da sua contribuição para qualquer finalidade, inclusive modificá-los e distribuí-los para o lucro.
  3. Os direitos sobre todos os materiais de estudo escritos em co-autoria pertence a todos os co-autores juntos.
  4. Os autores não poderá distribuir por materiais de estudo de lucro que eles escritos em co-autoria, sem a permissão explícita de todos os outros co-autores.

Recursos provenientes do Livro

Este livro “Fundamentos da Programação de Computadores com C #” vem com um rico conjunto de recursos: oficial web site , oficial discussão fórum , apresentação lâminas para cada capítulo do livro, aulas de vídeo para cada capítulo do livro e página de fãs no Facebook .

Web site do livro

O site oficial do livro “Introdução à Programação com C #” está disponível em: www.introprogramming.info . Neste site você pode baixar todo o livro em formato electrónico (PDF / DOCX / HTML / Kindle), o código-fonte dos exemplos, os exercícios e orientações soluções, apresentações lâminas , aulas em vídeo e outros recursos úteis.

Fórum de discussão

O fórum de discussão onde você pode encontrar soluções para quase todos os problemas do livro está disponível em: forums.academy.telerik.com .

Este fórum é criado para discussões entre os participantes em cursos de Telerik Software da Academia que passam por este livro durante os primeiros meses de sua formação e, obrigatoriamente, resolver todos os problemas nas seções de exercícios. A maioria das pessoas “vivem” no fórum são búlgara, mas todo mundo fala Inglês assim que você está convidado a fazer suas perguntas Os exercícios de livros em Inglês.

No fórum você vai encontrar comentários e soluções apresentadas por estudantes e leitores do livro, bem como pelos treinadores da Academia Software. Basta pesquisar exaustivamente o suficiente e você vai encontrar várias soluções para todos os problemas do livro (sem exceções). Todos os anos, milhares de participantes em Telerik Software Academy resolver problemas deste livro e participação em suas soluções e as dificuldades que você encontrou, por isso basta pesquisar exaustivamente no fórum ou perguntar, se você não pode chegar a uma solução para um problema particular .

A apresentação de slides Vindo com o Livro

Este livro é usado em universidades muitos, faculdades, escolas e organizações como livro-texto sobre programação de computadores, C #, estruturas de dados e algoritmos. Para ajudar os professores ensinam as lições seguintes deste livro nós preparamos uma apresentação de slides do PowerPoint para cada capítulo do livro. Os instrutores são bem-vindos para utilizar os slides gratuitamente sob o contrato de licença mencionada acima. Equipe dos autores será feliz ao descobrir que este livro e seus materiais de estudo e apresentação de slides estão ajudando as pessoas todo o mundo para aprender programação. Este é o objetivo principal do projeto: para ensinar os fundamentos da programação de computador , em forma completa, simples, estruturada, compreensível, de forma gratuita. Você pode encontrar os slides do PowerPoint em Inglês no site oficial do livro: www.introprogramming.info .

Materiais de vídeo para Auto-Educação com o Livro

Como parte do programa de Telerik Academy ( academy.telerik.com ) e, em particular, o livre curso “Fundamentos de programação C #”, vídeos de todas as palestras sobre o assunto neste livro foram registrados. Os materiais de vídeo em Inglês e búlgaro pode ser encontrada no site oficial C # do livro: introprogramming.info .

Se você falar Búlgaro você poderia estar interessado de canal de vídeo do Telerik Academy no YouTube: youtube.com/TelerikAcademy . Ele contém lições milhares de vídeo sobre a programação e desenvolvimento de software.

Fã clube

Para os fãs do livro “Introdução à Programação com C #” temos uma página no Facebook : www.facebook.com/IntroCSharpBook .

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

três × 3 =