User-tailorable systems: pressing the issues with buttons
CHI '90 Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Patterns of search: analyzing and modeling Web query refinement
UM '99 Proceedings of the seventh international conference on User modeling
The pragmatic programmer: from journeyman to master
The pragmatic programmer: from journeyman to master
Analysis of a very large web search engine query log
ACM SIGIR Forum
Distributed cognition: toward a new foundation for human-computer interaction research
ACM Transactions on Computer-Human Interaction (TOCHI) - Special issue on human-computer interaction in the new millennium, Part 2
The Psychology of How Novices Learn Computer Programming
ACM Computing Surveys (CSUR)
Software design---cognitive aspects
Software design---cognitive aspects
Agile Software Development: Principles, Patterns, and Practices
Agile Software Development: Principles, Patterns, and Practices
Web Work: Information Seeking and Knowledge Work on the World Wide Web
Web Work: Information Seeking and Knowledge Work on the World Wide Web
Clone Detection Using Abstract Syntax Trees
ICSM '98 Proceedings of the International Conference on Software Maintenance
A Language Independent Approach for Detecting Duplicated Code
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
An Ethnographic Study of Copy and Paste Programming Practices in OOPL
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Six Learning Barriers in End-User Programming Systems
VLHCC '04 Proceedings of the 2004 IEEE Symposium on Visual Languages - Human Centric Computing
Jungloid mining: helping to navigate the API jungle
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
End User Development (Human-Computer Interaction Series)
End User Development (Human-Computer Interaction Series)
Translating keyword commands into executable code
UIST '06 Proceedings of the 19th annual ACM symposium on User interface software and technology
XSnippet: mining For sample code
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Mica: A Web-Search Tool for Finding API Components and Examples
VLHCC '06 Proceedings of the Visual Languages and Human-Centric Computing
Sourcerer: a search engine for open source code supporting structure-based search
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Interruptions on software teams: a comparison of paired and solo programmers
CSCW '06 Proceedings of the 2006 20th anniversary conference on Computer supported cooperative work
Assieme: finding and leveraging implicit references in a web search interface for programmers
Proceedings of the 20th annual ACM symposium on User interface software and technology
Programming by a sample: rapidly creating web applications with d.mix
Proceedings of the 20th annual ACM symposium on User interface software and technology
Marmite: Towards End-User Programming for the Web
VLHCC '07 Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing
Opportunistic programming: how rapid ideation and prototyping occur in practice
Proceedings of the 4th international workshop on End-user software engineering
Hacking, Mashing, Gluing: Understanding Opportunistic Design
IEEE Pervasive Computing
Iterative design and evaluation of an event architecture for pen-and-paper interfaces
Proceedings of the 21st annual ACM symposium on User interface software and technology
Information Foraging Theory: Adaptive Interaction with Information
Information Foraging Theory: Adaptive Interaction with Information
How designers design and program interactive behaviors
VLHCC '08 Proceedings of the 2008 IEEE Symposium on Visual Languages and Human-Centric Computing
Conversations in developer communities: a preliminary analysis of the yahoo! pipes community
Proceedings of the fourth international conference on Communities and technologies
Example-centric programming: integrating web search into the development environment
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
What would other programmers do: suggesting solutions to error messages
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
No Code Required: Giving Users Tools to Transform the Web
No Code Required: Giving Users Tools to Transform the Web
Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 2
Non-programmers identifying functionality in unfamiliar code: strategies and barriers
Journal of Visual Languages and Computing
UIST '10 Adjunct proceedings of the 23nd annual ACM symposium on User interface software and technology
HyperSource: bridging the gap between source and code-related web sites
UIST '10 Adjunct proceedings of the 23nd annual ACM symposium on User interface software and technology
Toward transforming freely available source code into usable learning materials for end-users
Evaluation and Usability of Programming Languages and Tools
Proceedings of the 2011 iConference
Characterizing the usability of interactive applications through query log analysis
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Bricolage: example-based retargeting for web design
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
HyperSource: bridging the gap between source and code-related web sites
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Dinah: an interface to assist non-programmers with selecting program code causing graphical output
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
What kinds of development problems can be solved by searching the web?: a field study
Proceedings of the 3rd International Workshop on Search-Driven Development: Users, Infrastructure, Tools, and Evaluation
ScriptABLE: supporting informal learning with cases
Proceedings of the seventh international workshop on Computing education research
A field study of API learning obstacles
Empirical Software Engineering
Using intelligent tutors to enhance student learning of application programming interfaces
Journal of Computing Sciences in Colleges
An architectural approach to end user orchestrations
ECSA'11 Proceedings of the 5th European conference on Software architecture
Software engineers' information behaviour and implicit relevance indicators
International Journal of Knowledge and Web Intelligence
Software reuse through methodical component reuse and amethodical snippet remixing
Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work
Task-specific information retrieval systems for software engineers
Journal of Computer and System Sciences
Codelets: linking interactive documentation and example code in the editor
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
WebCrystal: understanding and reusing examples in web authoring
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Software developers' information needs: towards the development of intelligent recommender systems
iUBICOM'11 Proceedings of the 6th international conference on Ubiquitous and Collaborative Computing
Analyzing and mining a code search engine usage log
Empirical Software Engineering
Asking and answering questions about unfamiliar APIs: an exploratory study
Proceedings of the 34th International Conference on Software Engineering
Recommending source code for use in rapid software prototypes
Proceedings of the 34th International Conference on Software Engineering
Facilitating code example search on the web through expertise personalization
UMAP'12 Proceedings of the 20th international conference on User Modeling, Adaptation, and Personalization
Systematizing pragmatic software reuse
ACM Transactions on Software Engineering and Methodology (TOSEM)
The function, and dysfunction, of information sources in learning functional programming
Journal of Computing Sciences in Colleges
SnipMatch: using source code context to enhance snippet retrieval and parameterization
Proceedings of the 25th annual ACM symposium on User interface software and technology
Foundations and tools for end-user architecting
Proceedings of the 17th Monterey conference on Large-Scale Complex IT Systems: development, operation and management
The whats and hows of programmers' foraging diets
Proceedings of the SIGCHI Conference on Human Factors in Computing Systems
Proceedings of the 12th International Conference on Interaction Design and Children
Reverb: recommending code-related web pages
Proceedings of the 2013 International Conference on Software Engineering
SNIPR: complementing code search with code retargeting capabilities
Proceedings of the 2013 International Conference on Software Engineering
Towards a taxonomy of errors in HTML and CSS
Proceedings of the ninth annual international ACM conference on International computing education research
Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering
Authoring multi-stage code examples with editable code histories
Proceedings of the 26th annual ACM symposium on User interface software and technology
Sourcerer: An infrastructure for large-scale collection and analysis of open-source code
Science of Computer Programming
Software developers are humans, too!
Proceedings of the companion publication of the 17th ACM conference on Computer supported cooperative work & social computing
End-user construction mechanisms for the internet of things
BCS-HCI '13 Proceedings of the 27th International BCS Human Computer Interaction Conference
Hi-index | 0.01 |
This paper investigates the role of online resources in problem solving. We look specifically at how programmers - an exemplar form of knowledge workers - opportunistically interleave Web foraging, learning, and writing code. We describe two studies of how programmers use online resources. The first, conducted in the lab, observed participants' Web use while building an online chat room. We found that programmers leverage online resources with a range of intentions: They engage in just-in-time learning of new skills and approaches, clarify and extend their existing knowledge, and remind themselves of details deemed not worth remembering. The results also suggest that queries for different purposes have different styles and durations. Do programmers' queries "in the wild" have the same range of intentions, or is this result an artifact of the particular lab setting? We analyzed a month of queries to an online programming portal, examining the lexical structure, refinements made, and result pages visited. Here we also saw traits that suggest the Web is being used for learning and reminding. These results contribute to a theory of online resource usage in programming, and suggest opportunities for tools to facilitate online knowledge work.