Technical sites

  • Hacker News: A great link aggregation website for programming
  • Programming reddit: Same as above
  • MSDN: Microsoft's official technical hub, mainly documentation
  • InfoQ: Enterprise applications, focusing on software development field
  • OSChina: Open source technology community, does very well in open source
  • cnblogs, 51cto, csdn: Common technical communities, each with their own expertise
  • StackOverflow: IT technical Q&A website
  • GitHub: The world's largest source code management platform, many well-known open source projects are on it, such as the Linux kernel,
  • OpenStack and other free IT e-books:http://it-ebooks.info/
  • DevStore: Developer services store

Good books

  • Peopleware
  • The Mythical Man-Month
  • Code Complete 2
  • The Art of Computer Programming
  • Self-cultivation of Programmers
  • The Pragmatic Programmer
  • The Practice of High-Performance Programmers (Becoming an outstanding programmer actually has little to do with writing code)
  • Computer Systems: A Programmer's Perspective
  • Software Musings
  • Introduction to Algorithms (MIT Press)
  • Discrete Mathematics and Its Applications
  • Design Patterns
  • Beauty of Programming
  • Hackers and Painters
  • Programming Pearls
  • C++ Prime
  • Effective C++
  • TCP/IP Illustrated
  • The Art of Unix Programming
  • "Introduction to Psychoanalysis" by Freud
  • Getting Things Done: The Art of Stress-Free Productivity

Platform tools (all open source goodies)

  • Redmine/Trac: Project management platforms
  • Jenkins/Jira (not open source): Continuous integration systems (Apache Continuum, this is the CI system under Apache, haven't had time to research it yet)
  • Sonar: Code quality management platform
  • Git, SVN: Source code version control systems
  • GitLib/Gitorious: Build your own GitHub server
  • gitbook:https://www.gitbook.io/Great for writing books, of course also very good for writing documents
  • Travis-ci: Essential for continuous integration of open source projects, combined with GitHub,https://travis-ci.org/
  • Open source testing tools, communities (Selenium, OpenQA.org)
  • Puppet: An automated management engine that can be applied to Linux, Unix, and Windows platforms. The so-called configuration management system is to manage resources such as files, users, processes, and software packages in machines. Whether managing 1 or tens of thousands of machines, Puppet can easily handle it.
  • Nagios: System status monitoring and alerting, there is also Icinga (completely compatible with all Nagios plugins, working principles, configuration files, and methods, almost exactly the same. Simple configuration, powerful features)
  • Ganglia: Distributed monitoring system
  • fleet: Distributed init system

Crawler-related (fun tools)

  • Phantomjs
  • berserkJS (an improved version based on PhantomJS)
  • SlimerJS
  • CasperJS
  • selenium

Web server performance/stress testing tools/load balancers

  • http_load: The program is very small, less than 100K after decompression
  • webbench: It is a website stress testing tool under Linux, can simulate up to 30,000 concurrent connections to test the load capacity of a website
  • ab: ab is a powerful testing tool that comes with Apache
  • Siege: An open-source stress testing tool that can perform multi-user concurrent access to a web site according to configuration, record the response time of all request processes for each user, and repeat under a certain number of concurrent accesses.
  • squid (front-end cache), nginx (load), nodejs (that's right, it can too, you can write a little code to implement a high-performance load balancer): common load balancers
  • Piwik: Open-source website traffic statistics system
  • ClickHeat: Open-source website click heatmap
  • HAProxy: High-performance TCP/HTTP load balancer
  • ElasticSearch: Search engine based on Lucene
  • Page Speed SDK and YSLOW
  • HAR Viewer: HAR analysis tool
  • Protractor: E2E (end-to-end) automated testing tool

Web front-end related

  • GRUNT: js task runner
  • Sea.js: JS modularization
  • Knockout.js: MVVM development front-end, binding technology
  • Angular.js: Use super dynamic HTML & JS to develop web applications!
  • Highcharts.js, Flot: Common web chart plugins
  • Raw: A very good advanced data visualization tool
  • Rickshaw: Time-series chart library, can be used to build real-time charts
  • JavaScript InfoVis Toolkit: Another web data visualization plugin
  • Pdf.js, display PDF in HTML
  • ACE, CodeMirror: HTML code editors (ACE is really great)
  • NProcess: Gorgeous loading progress bar
  • impress.js: Let you create dazzling content presentation effects (similar ones include reveal)
  • Three.js: 3D Web library
  • Hightopo: HTML5-based 2D, 3D visualization UI library
  • jQuery.dataTables.js: Highly flexible table plugin
  • Raphaël: JS canvas drawing library, later discovered that Baidu Index graphics were drawn with it
  • director.js: JS routing module, front-end routing, Node.js back-end routing, etc., suitable for building single-page applications
  • pace.js: Page loading progress bar
  • Bower: Web package manager
  • jsnice: Interesting JS decompilation tool that guesses variable names after compressionhttp://www.jsnice.org/
  • D3.js: Is a JavaScript-based data visualization library (similar ones include P5.js)
  • Zepto.js: A thing for mobile that replaces jQuery, of course you can also use jQuery Mobile.

UI frameworks: Foundation, Bootstrap, Pure, EasyUI, Polymer

Several websites that front-end UI designers must visit: Dribbble, awwwards, unmatchedstyle, UIMaker

Mozilla Developer Center:https://developer.mozilla.org/en-US/

Icon resources: IcoMoon (my favorite), Themify Icons, FreePik, Glyphiconsart

  • Dialog: Very beautiful dialog box
  • AdminLTE: An open-source project on GitHub, a back-end management page framework based on Bootstrap 3
  • Respond.js: Let IE6-8, which don't understand love, support responsive design
  • require.js: JS module loading library
  • select2: A select box replacement library with more features than chosen
  • AngularUI: UI library integrated with Angular.js
  • normalize.css: A library that uses modern standards to keep the HTML rendered by various browsers consistent
  • CreateJS: HTML5 game engine. Less, Compass: Simplify CSS development
  • emojify.js: Used to automatically recognize Emoji text on web pages and display it as images
  • Simditor: A nice open-source HTML editor, simple and efficient
  • Sencha: A mobile development framework based on HTML5
  • SuperScrollorama+TweenMax+skrollr: Create awesome parallax scrolling web page animations
  • jquery-smooth-scroll: Same as above, smooth scrolling plugin
  • Animate.css: A CSS library that implements various animation effects
  • Emmet: Essential for front-end engineers, predecessor of ZenCode
  • MagicDraw: UML diagram tool

Big data processing/data analysis/distributed tools

  • Hadoop: A distributed file system. Combined with its MapReduce programming model, it can be used for batch processing of massive data (not to mention Hive, Pig, HBase, etc.). Worth mentioning is Cloudera's Hadoop distribution CDH5, which is based on YARN MRv2 and integrates Spark, directly usable in production environments. It is very useful for enterprises to quickly build data warehouses.

  • Ceph: Linux distributed file system (feature: no central node)

  • Storm: Real-time streaming data processing. You can check out an introduction from IBM. (There's also Yahoo's S4, which also does streaming data processing.)

  • Spark: Large-scale streaming data processing (can handle three common data processing scenarios in enterprises: complex batch data processing; interactive query based on historical data; streaming data processing based on real-time data streams). CSDN has a good article introducing it.

  • Spark Streaming: Real-time computing framework based on Spark

  • Tachyon: Distributed in-memory file system

  • Mesos: A cluster manager for computing frameworks, providing efficient resource isolation and sharing across distributed applications or frameworks. Impala: A new-generation open-source big data analytics engine that provides SQL semantics, and is faster than Hive.

  • SNAPPY: Fast data compression system, suitable for use in the Hadoop ecosystem

  • Kafka: High-throughput distributed message queue system

  • ActiveMQ: Produced by Apache, the most popular and powerful open-source message bus

  • MQTT: Message Queuing Telemetry Transport, an instant messaging protocol developed by IBM, which may become an important component of the Internet of Things

  • RabbitMQ: I remember OpenStack uses this, right?

  • ZeroMQ: Claims to make distributed computing simpler; it is a distributed message queue. You can check out an article by Yunfeng introducing it. Open-source log collection systems: scribe, chukwa, kafka, flume. Here is a comparison article.

  • Zookeeper: Reliable open-source project for distributed coordination

  • Databus: LinkedIn's real-time low-latency data capture system

Data source acquisition: Flume, Google Refine, Needlebase, ScraperWiki, BloomReach

Serialization technologies: JSON, BSON, Thrift, Avro, Google Protocol Buffers

NoSql:Apache Hadoop、Apache Casandra、MongoDB、Apache CouchDB、Redis、BigTable、HBase、Hypertable、Voldemort、Neo4j

MapReduce related: Hive, Pig, Cascading, Cascalog, mrjob, Caffeine, S4, MapR, Acunu, Flume, Kafka, Azkaban, Oozie, Greenplum

Data processing: R, Yahoo! Pipes, Mechanical Turk, Solr/Lucene, ElasticSearch, Datameer, Bigsheets, Tinkerpop. NLP (natural language processing): Natural Language Toolkit, Apache OpenNLP, Boilerpipe, OpenCalais

Machine learning: WEKA, Mahout, scikits.learn, SkyTree

Visualization technologies: GraphViz, Processing, Protovis, Google Fusion Tables, Tableau, Highcharts, ECharts (Baidu's is quite good), Raphaël.js

  • Kettle: Open-source ETL tool
  • Pentaho: Open-source BI system with workflows as the core
  • Mondrian: Open-source ROLAP server
  • Oozie: Open-source workflow scheduling engine for Hadoop

Open-source data analysis and visualization tools: Weka, Orange, KNIME

Cobar: Alibaba's MySQL distributed middleware

C & C++

Thrift: Used to develop scalable and cross-language services. (Similar ones include Avro, Google Protocol Buffers.)

libevent: An event-driven network library, supports Windows, Linux, BSD, and other platforms. Internally uses system calls such as select, epoll, and kqueue to manage the event mechanism. (By the way, there's also libev.)

Boost: Enough said, quasi C++ standard library

Ptmalloc\Valgrind\Purify

NetworkServer architecture: acceptor -> dispatcher -> worker (this is not a tool, by the way)

breakpad: Crash dump and analysis module, used in many crash reports

UI-related: Not to mention MFC, BCG, and Qt. More advanced ones include HTML and DirectUI technologies: libcef (based on the Chrome kernel; thinking about using HTML5 to develop pages is a bit exciting), HtmlLayout, Duilib, Bolt. For non-C++ there's also node-webkit, which is quite good, integrating Node.js and WebKit cores.

Game development related

MINA: Use Java to develop mobile game and web game servers. (By the way, there's also Netty, which is also powerful. Both are based on NIO.)

HP-Socket: I've seen some web game servers built with this

Yunfeng's technology blog:http://blog.codingnow.com/

OGRE: The famous 3D graphics rendering engine

OpenVDB: DreamWorks' open-source C++ effects library

cocos2d: Cross-platform 2D game engine

unity3d: Cross-platform 3D game engine, very popular

Node.js: Many also use it to develop mobile games and servers. (NetEase's Pomelo is one such example.)

Log aggregation, distributed log collection

Scribe: Facebook's (nodejs + scribe + inotify for log synchronization)

logstash: Powerful log collection system; you can build a powerful log analysis platform based on logstash + kibana + elasticsearch + redis

log.io: Real-time log collection system developed with Node.js

RTP, real-time transport protocol and audio/video

RTP, RTCP, RTSP -> librtp, JRTPLIB (following RFC1889 standard)

Ring buffer, used for real-time data transmission

SDL,ffmpeg,live555,Speex

Red5: Open-source Flash streaming media server developed in Java. It supports: converting audio (MP3) and video (FLV) into playback streams; recording client playback streams (FLV only); shared objects; live stream publishing; remote calls.

Python

Eric, Eclipse+pydev, a rather good Python IDE

PyWin: Win32 API programming package

numpy: Scientific computing package, mainly used for large-scale matrix computation, etc. In addition, there are SciPy and Matplotlib.

GUI related: PyQt, PyQwt

supervisor: Process monitoring tool

Java related

Common IDEs: IntelliJ IDEA, Eclipse, NetBeans

Web development related: Tomcat, Resin, Jetty, WebLogic, etc. Common components: Struts, Spring

Hibernate. Netty: Asynchronous event-driven network application programming framework, good for high-concurrency network programming (NIO framework)

MINA: Easily develop high-performance and high-reliability network applications (also an NIO framework). Many mobile game servers are developed with it.

jOOQ: Java ORM framework. Activiti: Workflow engine. Similar ones include jBPM, Snaker.

Perfuse: A user interface package used to display structured and unstructured data in interactive visual graphs

Gephi: Complex network analysis software, mainly used for interactive visualization and exploration of various networks and complex systems, dynamic and hierarchical graphs as an open-source tool

Nutch: Well-known crawler project; Hadoop was developed from this project

web-harvest: Web data extraction tool

POM tools: Maven + Artifactory. Netflix

Curator: A Zookeeper client library open-sourced by Netflix, used to simplify Zookeeper client programming

Akka: A concurrency processing framework based on the actor model

EclEmma: Coverage testing tool

.NET related

Xilium.CefGlue: .NET wrapper based on the CEF framework, for developing Chrome-core browsers on .NET

CefSharp: As above, there is a WebKit wrapper, making C# and JS interaction easier.

netz: Free .NET executable compression tool

SmartAssembly: An insane .NET code optimization and obfuscation tool

NETDeob0: .NET deobfuscation tool, truly "the devil is a foot high, the Tao is ten feet high" (there's also de4dot on GitHub, both open source)

ILMerge: Pack all referenced DLLs and exe files into a single exe file

ILSpy: Open-source .NET decompiler tool

Javascript.NET: A very good JS execution engine, wrapping V8

NPOI: Excel operations

DotRAS: Remote Access Service module

WinHtmlEditor: HTML editor for WinForms

SmartThreadPool: A thread pool with advanced features implemented in C#

Snoop: WPF Spy Utility

Autofac: Lightweight IoC framework

HtmlAgilityPack: A powerful tool for parsing HTML

Quartz.NET: Job scheduling

HttpLib: @CodePlex, simplifies HTTP requests

SuperSocket: Simplifies Socket operations. Based on it there is also SuperWebSocket, which can be used to develop standalone WebSocket servers.

DocX: Manipulate Word files without installing Office

Dapper: Lightweight ORM with good performance

HubbleDotNet: Full-text search system that can connect to databases

fastJSON: @CodeProject, high-performance JSON serialization class

ZXing.NET: @CodePlex, QR codes, barcodes related

Nancy: Lightweight HTTP server. You can break free from IIS for small web applications (Nancy.Viewengines.Razor can add the Razor engine).

AntiXSS: Microsoft's XSS defense library, Microsoft Web Protection

LibraryJint: JavaScript interpreter

CS-Script: Execute C# code files as scripts

Jexus: High-performance, easy-to-use, free ASP.NET server on Linux

Clay: Makes dynamic even more flexible, allowing you to write C# like JavaScript

DynamicJSON: Get JSON data without defining data models

Antlr: Open-source parser generator (not really C#-specific, available for other languages too)

SharpPcap: C# wrapper for WinPcap, an awesome network packet analysis library (includes PacketNotNet for packet protocol analysis)

Roslyn: C# and VB compiler

ImageResizer: Freely control image size on the server side. Truly a magical tool. It's convenient for CMS to upload small images on mobile and large images on PC.

UI-related: DevExpress, Fluent (Office 07 style), mui (Modern UI for WPF)

NetSparkle: Application auto-update component

ConfuserEx: Open-source .NET obfuscation tool

ServiceStack: Open-source high-performance Web service framework, can be used to build high-performance REST services. Expression

Evaluator: Eval for C#, handles string expressions

http://nugetmusthaves.com/

Common tools

  • Fiddler: A very useful Web front-end debugging tool, of course for the underlying HTTP protocol. Normally, the built-in debugging tools in browsers like Chrome are sufficient, but for special cases you still need to use it.
  • Wireshark: Well-known network packet analysis tool
  • PowerCmd: A powerful replacement for Windows Cmd
  • RegexBuddy: Powerful regular expression testing tool
  • Soure Insight: A magical tool for reading source code
  • SublimeText: Programmers' favorite editor
  • Database.NET: A generic relational database client based on .NET 4.0. It's quite handy for simple tasks.
  • Navicat Premium: Supports MySql, PostgreSQL, Oracle, Sqlite and SQL Server. It's not as versatile as Database.NET, but has much better performance. It also has built-in backup functionality for scheduled database backups.
  • Synergy: One keyboard and mouse to control multiple computers on a LAN
  • DameWare: Remote assistance toolset (I mainly use it at work to control the big screen)
  • Radmin: Remote control tool. I used it for a while.
  • DameWare, which also needs cracking and doesn't support Win7 well; instead I found this one works well.
  • Listary: A "super magical tool" that can greatly improve the speed and efficiency of browsing and searching files in Windows.
  • Clover: Adds tabs to Windows Explorer
  • WinLaunch: A Launch tool that simulates Mac OS
  • Fritzing: Drawing circuit schematics
  • LICEcap: GIF tutorial creation, git,
  • svn: Version control system. Enigma Virtual Box (wraps exe, dll, etc. into one executable program).
  • Open DBDiff (for SqlServer) database synchronization
  • SymmetricDS: Database synchronization
  • BIEE, Infomatica, SPSS, weka, R language: Data analysis
  • CodeSmith, LightSwitch: Code generation
  • Pandoc: A Markdown conversion tool for publishing books. I used to play with Docbook, but now Markdown is more popular.
  • Window Magnet [Mac]: Enhances Mac window management, with the ability like Win7 to drag windows to screen edges for automatic resizing.
  • log explorer: View SqlServer logs. dependency
  • walker: Query Windows application DLL dependencies
  • Shairport4w: Transmit audio from iPhone, iPad, iPod to PC via AirPlay protocol
  • ngrok: Intranet penetration tool. Axure: Rapid prototyping tool. There is also an online drawing tool made by a domestic startup team, which works very well.http://www.processon.com
  • tinyproxy: (Linux) A small proxy server supporting HTTP and HTTPS protocols. EaseUS Partition
  • Master: A super simple partition resizing tool, and it's quite fast. If your C drive is running out of space, use it to carve some space from the D drive — no need to reinstall the system.
  • CheatEngine: An essential tool for modifying memory values when playing games (I remember using it when playing Xuan-Yuan Sword 6, it was super convenient).
  • ApkIDE: Android decompilation artifact. Circumvention tools (Free Gate, Tianxing Browser)

Design tools: Sketch, OmniGraffle

MindManger: Mind mapping