We may earn an affiliate commission when you visit our partners.

Computer Programmer

Save
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.

Share

Help others find this career page by sharing it with your friends and followers:

Salaries for Computer Programmer

City
Median
New York
$172,000
San Francisco
$143,000
Seattle
$155,000
See all salaries
City
Median
New York
$172,000
San Francisco
$143,000
Seattle
$155,000
Austin
$155,000
Toronto
$137,000
London
£54,000
Paris
€50,000
Berlin
€89,000
Tel Aviv
₪431,000
Singapore
S$108,000
Beijing
¥340,000
Shanghai
¥294,000
Shenzhen
¥505,000
Bengalaru
₹344,000
Delhi
₹220,000
Bars indicate relevance. All salaries presented are estimates. Completion of this course does not guarantee or imply job placement or career outcomes.

Path to Computer Programmer

Take the first step.
We've curated 24 courses to help you on your path to Computer Programmer. Use these to develop your skills, build background knowledge, and put what you learn to practice.
Sorted from most relevant to least relevant:

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.
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 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.
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.
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 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.
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.
Table of Contents
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser