March 29, 2024
Updated April 1, 2025
17 minute read
Exploring a Career as a Computer Programmer
Computer programmers are the architects and builders of the digital world. At its core, computer programming involves writing instructions, known as code, that tell computers how to perform specific tasks. This ranges from creating simple scripts to automate repetitive actions, to developing complex software applications that power businesses, entertainment, and communication globally. Programmers translate human ideas and requirements into a language that machines can understand and execute, making technology accessible and functional.
8fy73c|
Find a path to becoming a Computer Programmer. Learn more at:
OpenCourser.com/career/8fy73c/computer
Reading list
We've selected some books
that we think will supplement your
learning. Use these to
develop background knowledge, enrich your coursework, and gain a
deeper understanding of the topics covered in
Computer Programmer.
Focused specifically on writing clean, readable, and maintainable code, this book has an entire section dedicated to functions: how to write them well, what makes a good function, and common pitfalls to avoid. It provides practical rules and examples for improving code quality at the function level. This crucial read for anyone wanting to deepen their understanding of writing effective and understandable custom functions, particularly in a professional context.
Provides a comprehensive overview of operating systems, including file processing concepts. It covers topics such as file organization, file access methods, and file system implementation. The authors have extensive experience in operating systems research and teaching, and the book is well-written and easy to follow.
A classic text on Haskell, a purely functional programming language, providing a comprehensive overview of first-class functions, lazy evaluation, and type systems. Written by one of the pioneers of Haskell, this book is highly recommended for advanced functional programmers.
Offers timeless advice for improving programming practices, including how to write flexible, dynamic, and adaptable code, which heavily relies on well-designed functions. It emphasizes thinking analytically about code and provides tips applicable across languages and paradigms. The 20th-anniversary edition updates these principles for the modern development landscape, making it highly relevant for contemporary professional developers. It's considered a must-read for anyone serious about software development.
Comprehensive introduction to deep learning, and it valuable resource for students who want to learn more about the theory and practice of deep learning.
Classic introduction to algorithms, and it valuable resource for students who want to learn more about the theory and practice of algorithm design.
A comprehensive introduction to Scala, covering both object-oriented and functional programming concepts, including first-class functions, higher-order functions, and immutability. Written by the creators of Scala, this book is essential for Scala beginners.
Directly relevant to the R course mentioned, this book focuses on using R for data analysis with the tidyverse collection of packages. It covers creating and using functions within the R environment for data manipulation, visualization, and modeling. It's excellent for understanding custom functions in a data science context and widely used resource in the R community. The second edition includes significant updates.
While not solely about functions, this book provides a deep dive into algorithms and data structures, which are often implemented using custom functions or procedures. Understanding these fundamental building blocks of computer science is essential for writing efficient and well-designed functions for complex tasks. It is the leading algorithms textbook worldwide and a standard reference for professionals, offering a rigorous foundation for understanding the computational tasks that custom functions perform. The fourth edition recent update.
Delves into the more advanced aspects of R programming, including a detailed examination of how functions work in R, lexical scoping, and functional programming techniques within R. It's essential for R users who want to deepen their understanding of writing efficient and idiomatic R code using custom functions. The third edition covers the latest features and best practices in R. It is suitable for graduate students and professionals.
Provides a comprehensive look at JavaScript, covering functions in detail, including closures, scope, and asynchronous programming with functions. It's suitable for those with some programming experience looking to deepen their understanding of functions in a dynamic language like JavaScript. The third edition solid reference for modern JavaScript development.
A popular and beginner-friendly introduction to Python, this book covers defining and using functions early on as a core programming concept. It's excellent for gaining a broad understanding of how custom functions are created and utilized in a widely used language. The project-based approach helps solidify understanding through practical application. The third edition ensures the content aligns with recent Python versions.
Deep dive into functional programming principles using Scala. Functional programming centers heavily around the concept of functions as first-class citizens and building programs by composing functions. This book is excellent for gaining a deep and contemporary understanding of functional programming paradigms and how they influence the design and use of custom functions in modern languages. It is suitable for graduate-level study and professionals.
Comprehensive introduction to machine learning, and it valuable resource for students who want to learn more about the theory and practice of machine learning.
Comprehensive introduction to natural language processing, and it valuable resource for students who want to learn more about the theory and practice of natural language processing.
A practical guide to using Haskell for real-world applications, with a focus on first-class functions, concurrency, and type-safety. Suitable for intermediate Haskell developers who want to apply functional programming principles to practical problems.
A fast-paced introduction to Scala, covering both object-oriented and functional programming concepts, including first-class functions. is suitable for beginners and intermediate Scala developers who want to learn the basics of functional programming.
Provides a thorough guide to modern JavaScript for experienced programmers, covering core concepts like functions, scope, and prototypes in detail. It helps in deepening understanding of the nuances of functions in JavaScript and contemporary language features. It's a solid reference for professionals working with JavaScript and wanting to write more robust and effective custom functions.
Comprehensive introduction to computer networks, and it valuable resource for students who want to learn more about the design and implementation of computer networks.
Comprehensive introduction to artificial intelligence, and it valuable resource for students who want to learn more about the theory and practice of artificial intelligence.
Classic guide to the UNIX operating system. It covers a wide range of topics, including file processing. The authors are experienced UNIX developers, and the book is full of practical advice and insights.
This concise book highlights the elegant and powerful features of JavaScript, with a strong emphasis on functions as the fundamental building blocks. It helps readers understand how to use functions effectively while avoiding the problematic aspects of the language. While not the newest book, its insights into JavaScript's functional nature remain highly valuable for deepening understanding. It's considered a classic for JavaScript developers.
A German-language introduction to functional programming in F#, covering first-class functions, immutable data structures, and type systems. is suitable for beginners and intermediate F# developers who want to learn functional programming.
Comprehensive guide to advanced programming in the UNIX environment. It covers a wide range of topics, including file processing. The author leading expert in UNIX programming, and the book valuable resource for anyone interested in learning more about this topic.
Comprehensive introduction to computer graphics, and it valuable resource for students who want to learn more about the theory and practice of computer graphics.
Explores common design patterns in JavaScript, many of which rely heavily on the effective use and organization of functions. Understanding these patterns helps in writing more modular, maintainable, and reusable custom functions and code structures. It's valuable for those looking to deepen their understanding of how functions fit into larger software design principles in JavaScript.
Offers a very accessible and visual introduction to algorithms, explaining complex concepts with helpful illustrations. It provides a good entry point for understanding how algorithms, which are essentially structured sequences of operations often implemented as functions, work. It's particularly useful for those new to algorithms and provides a good foundation before tackling more dense texts. The second edition keeps the content up-to-date.
While not strictly about writing functions, this book discusses the professionalism and discipline required for software development, including taking pride in one's work and producing high-quality code. This ethos directly applies to writing clean, well-designed custom functions. It's a valuable read for aspiring and current professional developers and complements 'Clean Code' by focusing on the behavioral aspects of crafting software.
Provides a comprehensive overview of file processing in Java. It covers topics such as file input and output, file system navigation, and file system security. The author leading expert in Java programming, and the book valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of file processing in Python. It covers topics such as file input and output, file system navigation, and file system security. The author leading expert in Python programming, and the book valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of file processing in JavaScript. It covers topics such as file input and output, file system navigation, and file system security. The author leading expert in JavaScript programming, and the book valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of file processing in Go. It covers topics such as file input and output, file system navigation, and file system security. The author leading expert in Go programming, and the book valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of file processing in Ruby. It covers topics such as file input and output, file system navigation, and file system security. The author leading expert in Ruby programming, and the book valuable resource for anyone interested in learning more about this topic.
Provides a comprehensive overview of file processing in Perl. It covers topics such as file input and output, file system navigation, and file system security. The author leading expert in Perl programming, and the book valuable resource for anyone interested in learning more about this topic.
Fun and engaging introduction to Java programming, which required component of the AP Computer Science A curriculum.
A classic text on the Scheme programming language, introducing functional programming concepts through a series of puzzles and exercises. While not explicitly focused on first-class functions, this book provides a gentle introduction to functional programming principles.
Explores various programming paradigms from a unified perspective, providing a broad understanding of different computational models and how concepts like procedures and functions are treated within them. It helps to broaden one's view of custom functions beyond a single language or paradigm. It valuable resource for advanced undergraduate and graduate students interested in the theoretical underpinnings of programming languages.
Provides a practical introduction to SAS programming, including the use of procedures and writing custom code within the SAS environment. It is relevant for understanding how custom functions or code blocks are implemented and used in a statistical programming context like SAS. While not solely focused on user-defined functions, it covers the building blocks necessary for creating custom analytical steps. The fifth edition offers updated examples.
Takes a hands-on, exercise-driven approach to learning Python. It introduces functions early in the process and reinforces their usage through practical coding exercises. It's well-suited for beginners, including high school and undergraduate students, who want to learn programming by doing. The 5th edition provides updated content and exercises for learning Python, including how to define and use custom functions.
Known as the 'Dragon Book,' this classic and comprehensive text on compiler design. Understanding how compilers parse and process code, including function definitions, scope, and function calls, provides a fundamental understanding of how custom functions work at a very low level. is highly theoretical and advanced, suitable for graduate students and researchers seeking a deep understanding of programming language implementation. It provides essential background knowledge.
For more information about how these books relate to this course, visit:
OpenCourser.com/career/8fy73c/computer