Abstract: A method and system for providing a hybrid block and text-based programming environment. The hybrid block and text-based programming environment provides a software development tool suitable for users of different programming skill levels to write and understand code. The hybrid programming environment enables a user to view and edit source code through multiple graphical representative displays of the source code in a manner not previously achievable. Each of the graphical representative displays is linked to a particular programming view that has a unique set of rules related to the functionality of the displayed graphical elements to enable the more comprehensive functionality. The graphical representative displays provide a tool to educate novice programmers as they become more proficient and assist in the transition between block-based and textual representations.