This was my first attempt to build a personal website entirely from scratch. Any ideas on how can I improve it (in terms of both design and functionality)? Thank you in advance! :-)
Look at it in different browsers. It does not look like what you want in Firefox or Chrome.
White space is your friend. People won't read big blocks of text. Break up your text into paragraphs.
Read about design - Smashing Magazine is a great place for inspiration and information.
You should correct the errors found by the W3C's Validation service. For example, you have accidentally closed your <h1> tag with an <h4> tag - it's easily done, especially when trying out different ideas and styles. This is a great resource to use on every project. Also, as a fellow Mac user, you need to remember to test your design on PCs, assuming you value consistency across platforms. Likewise, you should also check your site on different browsers, evening checking the same browser (i.e. Safari) on both Mac and PC. What looks good on a Mac won't necessarily look the same on a PC without some tweaking. Litmus can help with this if you don't have access to the browsers you want to check, and it's currently free on weekends.
I think the main text would be easier to read if left aligned and surrounded by more space. As Emily says, "White space is your friend". This couldn't be more true.
Obviously, this is your website, however I would speak in first person.
Ditto on the white space comments. Your portrait is crowded by the text to the left.
The content of the second
<div class="icons"> is a list of links, so a list (UL or OL) would be a more appropriate (semantic) element.
icons class makes sense at the bottom of the page, but not really for wrapping the H1.
<div id="header"> might be more appropriate here... or no wrapping div at all.
Hope this is helpful. I applaud you for opening yourself and your work up for critique - it's a great way to learn and improve. Cheers!
You can also try asking for input on some of the sites listed here.
From a usability perspective:
What's the purpose of your website? Is it to get hired? (In which case you might want to include a portfolio of code samples and your resume.) Is it to just have an internet presence? (You might consider maintaining a blog.)
Jakob Nielsen has a lot of great tips on creating a usable website. He's more focused on commercial sites, but this may help: http://www.useit.com/homepageusability/guidelines.html. Particularly check out the section on "Content Writing".
I agree that you probably want to speak in the first person. You might consider using bullet points for your content, or creating sections like "My studies / work", "My hobbies", and "Find me online".