Fundamentals for Self-Taught Programmers: Embark on your software engineering journey without exhaustive courses and bulky tutorials
- Length: 254 pages
- Edition: 1
- Language: English
- Publisher: Packt Publishing
- Publication Date: 2023-04-28
- ISBN-10: 180181211X
- ISBN-13: 9781801812115
- Sales Rank: #0 (See Top 100 Books)
An absolute beginner’s guide to strengthening the fundamentals before learning your first programming language
Purchase of the print or Kindle book includes a free PDF eBook
Key Features
- Explore fundamental computer science concepts from data structures through to object-oriented programming
- Progress from understanding the software engineering landscape to writing your first program
- Authored by a Microsoft community insider and filled with case studies from software engineering roles
Book Description
Software engineering is a set of techniques, including programming, within the computer science discipline associated with the development of software products. This practical guide to software engineering will enable aspiring and new developers to satisfy their curiosity about the industry and become ready to learn more about the basics before beginning to explore programming languages, along with helping junior and upcoming developers to effectively apply their knowledge in the field.
The book begins by providing you with a comprehensive introduction to software engineering, helping you gain a clear, holistic understanding of its various sub-fields. As you advance, you’ll get to grips with the fundamentals of software engineering, such as flow control, data structures and algorithms. The book also introduces you to C# and guides you in writing your first program. The concluding chapters will cover case studies, including people working in the industry in different engineering roles, as well as interview tips and tricks and coding best practices.
By the end of this programming book, you’ll have gained practical knowledge of the implementation and associated methodologies in programming that will have you up and running and productive in no time.
What you will learn
- Gain an understanding of the software engineering landscape
- Get up and running with fundamental programming concepts in C#
- Implement object-oriented programming (OOP) in C#
- Gain insights on how to keep the code readable and reusable
- Discover various tips and tricks to efficiently prepare for a software engineering interview
- Implement various popular algorithms using C#
Who this book is for
This book is for anyone who is curious about programming and interested in entering the field of software engineering by beginning at the fundamentals. No prior knowledge of computer science or software engineering is necessary.
Fundamentals for Self-Taught Programmers Contributors About the author About the reviewer Preface Who this book is for What this book covers To get the most out of this book Download the example code files Download the color images Conventions used Get in touch Share Your Thoughts Download a free PDF copy of this book Part 1: Software Engineering Basics Chapter 1: Defining Software Engineering Technical requirements What is computer science? An introduction to software engineering Planning Design Implementation Testing Deployment Maintenance Summary Questions Further reading and references Chapter 2: The Software Engineering Life Cycle Technical requirements Setting the scene for building software Planning and requirements gathering Creating a high-level and low-level design High-level design Low-level design Developing software and implementation Software testing and quality assurance Software deployment and delivery Maintaining software after deployment Summary Questions Further reading Chapter 3: Roles in Software Engineering The project manager Defining the purpose and requirements Identifying and connecting with key contributors Creating an adaptable plan The web developer Frontend developers Full stack developers The backend software engineer Building the backend with data Developing the application programming interface Improving performance The mobile software engineer The UI Accessibility The quality assurance software engineer Automating test cases Logging and documentation The DevOps engineer Summary Questions Further reading Part 2: Introduction to Programming Chapter 4: Programming Languages and Introduction to C# Technical requirements Learning the purpose of programming languages Defining common programming terminology Building browser-based software with web development languages Understanding multi-purpose backend languages Development environments for mobile and smartphone software development Building software with low-code/no-code platforms Learning about .NET and C# Popular uses for C# Full stack web development with ASP.NET Game development with Unity Cross-platform development with .NET MAUI Summary Questions Further reading Chapter 5: Writing Your First C# Program Technical requirements Introduction to software development tools Operating system Browser Code editor Software runtime and development kit Command line Source control Installing .NET and tools for .NET development Installing the .NET SDK and runtime Installing Visual Studio Code Configuring Visual Studio Code for C# development Building a C# console application Editing a console application in Visual Studio Code Summary Questions Further reading Chapter 6: Data Types in C# Technical requirements Introduction to variables Creating a variable Introduction to the string data type String concatenation Operators and type safety Introduction to numerical data types Type casting Updating variable values Introduction to the Boolean data type Introduction to the array data type Summary Questions Further reading Chapter 7: Flow Control in C# Technical requirements Introduction to flow control Introduction to if statements Using if..else statements Introduction to loops Using a for loop Using a for loop with arrays Using a while loop Introduction to methods How to create a method How to call a method Using method parameters and arguments How to return a value from a method Solving the Fizz Buzz problem Using else..if Using the remainder operator Fizz Buzz solution Summary Questions Further reading Chapter 8: Introduction to Data Structures, Algorithms, and Pseudocode Technical requirements Planning with pseudocode Exercise – FizzBuzz in pseudocode The importance of data structures and algorithms Introduction to the array data structure Introduction to the selection sort algorithm Introduction to the linear search algorithm Introduction to the binary search algorithm Summary Questions Further reading Chapter 9: Applying Algorithms in C# Technical requirements Writing a selection sort algorithm in C# Writing a linear search algorithm in C# Writing a binary search algorithm in C# Building your own algorithms Improving algorithms with refactoring Summary Questions Further reading Chapter 10: Object-Oriented Programming Technical requirements Introduction to object-oriented programming Understanding objects Working with objects, classes, and types in C# Introduction to inheritance Introduction to encapsulation Working with access modifiers in C# Introduction to polymorphism Static polymorphism Dynamic polymorphism Introduction to abstraction Summary Questions Further reading Part 3: Software Engineering – the Profession Chapter 11: Stories from Prominent Job Roles in Software Development Technical requirements Android software engineer iOS software engineer Generalist software engineer Engineer #1 Engineer #2 C# software engineer Frontend web developer Data engineer Salesforce software engineer Summary Further reading Chapter 12: Coding Best Practices Technical requirements Following naming guidelines Naming identifiers Casing and capitalization Data should be nouns Methods should be verbs Following syntax consistency guidelines Organizing lines of code Indentation – tabs versus spaces, the historic debate Implicitly typed variables Following reusability guidelines Method usage Extensible classes Following documentation guidelines Creating documentation with comments in C# Summary Questions Further reading Chapter 13: Tips and Tricks to Kickstart Your Software Engineering Career Technical requirements Preparing to enter the job market Strengthening your skills for a role Getting prepared for an entry-level software engineering role Putting your portfolio together Preparing a resume Additional considerations beneficial for entering the job market Seeking mentorship Building your professional networking Sharing your experiences Preparing for the technical interview Searching for software engineering roles Applying for a role What to do while waiting for an interview Experiencing the interview process Going through a tech screening Doing the technical interview Summary Questions Further reading Assessments Chapter 1 – Defining Software Engineering Chapter 2 – The Software Engineering Life Cycle Chapter 3 – Roles in Software Engineering Chapter 4 – Programming Languages and Introduction to C# Chapter 5 – Writing Your First C# Program Chapter 6 – Data Types in C# Chapter 7 – Flow Control in C# Chapter 8 – Introduction to Data Structures, Algorithms, and Pseudocode Chapter 9 – Applying Algorithms in C# Chapter 10 – Object-Oriented Programming Chapter 12 – Coding Best Practices Chapter 13 – Tips and Tricks to Kickstart Your Software Engineering Career Index Why subscribe? Other Books You May Enjoy Packt is searching for authors like you Share Your Thoughts Download a free PDF copy of this book
Donate to keep this site alive
How to download source code?
1. Go to: https://github.com/PacktPublishing
2. In the Find a repository… box, search the book title: Fundamentals for Self-Taught Programmers: Embark on your software engineering journey without exhaustive courses and bulky tutorials
, sometime you may not get the results, please search the main title.
3. Click the book title in the search results.
3. Click Code to download.
1. Disable the AdBlock plugin. Otherwise, you may not get any links.
2. Solve the CAPTCHA.
3. Click download link.
4. Lead to download server to download.