Мне кажется, вы немного озадачены тем, что в действительности делает оператор return. Оператор return останавливает выполнение функции и возвращает значение из этой функции. Таким образом, после того, как вы передадите массив в качестве аргумента, ваша функция запустит контекст выполнения, она будет проходить через ваш код синхронно, а затем, когда вернет sum как значение функции. Затем console.log войдет в консоль. Без привязки значения функции к вашей консоли, с помощью alert () или к узлу dom у вас не будет места, чтобы увидеть, что он возвращает.
Начните читать книгу Усовершенствованное Программирование Linux, которое также доступно как свободный PDF.
Не бойтесь усовершенствованного ключевого слова. От деталей Вашего сообщения (ncurses, сокеты) Вы уже "совершенствуетесь".
Можно также позже посмотреть на бойкую библиотеку (Стандартный компонент GTK +/GNOME, но также и используемый в приложениях командной строки.)
Если абсолютно необходимо программировать в C++, считайте целый documenation QT, и Вы хороши для движения.
Остальное зависит от того, что Вы хотите сделать.
Вы не должны быть экспертом ни в одном из этого; Вы будете учиться со временем.
Зависит, что Вы пытаетесь сделать...
Будут Вами делающий приложения для GUI? Изучите QT или GTK или wxWidgets. Будут Вами делающий разработку драйвера устройства? Изучите прямой C, не просто C++. Большая увлекательная разработка программного обеспечения в соответствии с Linux происходит в Python и Perl (и другие динамические языки до меньшей степени), таким образом, необходимо почти наверняка изучить один из тех.
Я понимаю, почему Вы задаете свой вопрос этот путь, но Linux не является Windows, таким образом, нет действительно никакого прямого ответа. На самом деле мы говорим о GNU/linux + вся экосистема бесплатного программного обеспечения, поэтому что необходимо изучить, зависит многое того, что Вы хотите сделать.
Если Вы будете больше в системное программирование, то Вы посмотрите на ядро Linux и потребность работать над Вашими навыками C.
Если Ваш хотеть кодировать утилиты, языки сценариев (особенно рубиновый и Python) будут Вашими предпочтительными инструментами, и необходимо будет выбрать платформу GUI к тому же (GTK, QT и wxWidget показывают путь).
Если это больше о веб-программировании и сетевом программировании: Python, рубин, php или Java могут сделать это.
В ENV Linux у Вас есть выбор из-за партии людей использование много различных инструментов. Это может казаться грязным, и часто, но это работает не настолько плохо.
Так прекратите думать о том, что необходимо изучить и сфокусировать на 2 вопросах:
Свободный, как в помощнике свободы, средства можно выбрать.
Это поможет Вам понять, почему вещи сделаны, как они находятся в *основанная на Unix система.
Я также рекомендую изучить STL и Повышение - последний особенно полезен при записи приложений C++ в Linux, поскольку Вы получаете библиотеки для поточной обработки, файловой системы, regex, и т.д. Плюс код может быть портирован назад к Windows при необходимости. Это - то, как я начал в Linux - я взял проект Windows и преобразовал для использования STL/повышения и добавил UI на базе браузера. После того как это было в порядке в Windows - но без фактических специфических особенностей Windows в коде - я приступил к изучению основ Linux (gcc, сделайте, и т.д.), и получил его работающий очень быстро.
Привлеките свое уже трудное заработанное знание COM и изучите что-то как ДАО. Очевидно, нет никакого ATL или WTL в мире Unix..., таким образом, необходимо будет инвестировать время для изучения STL - хорошими новостями является STL, существует на окнах также. Повышение поможет Вам пойти между значительно легче платформами, таким образом, необходимо будет изучить это также.
Кроме того, это действительно зависит от того, что Вы хотите сделать.
Я предлагаю изучить CMake - это - большой межплатформенный инструмент сборки, который намного легче использовать, чем делают/автооснащают.
Я рекомендовал бы Вам запуститься при помощи хинду, это должно быть твердо первые недели, но через некоторое время (скажите 2 месяца и меньше если у Вас есть основной Linux, понимают), Вы сможете использовать каждое распределение, и Вы будете знать точно, что произойдет и как в Вашей системе, когда Вы нажатие/цифра что-то, я думаю, что Вам возместят за это больше времени (учатся, хинду немного более тверд затем другие дистрибутивы), потраченный на хинду. И это, я думаю, будет полезно при программировании для Linux.
При разработке для Linux я склонен придерживаться основ: энергия, gcc, gdb (из командной строки, никаких фронтэндов), svn, cscope, Valgrind, делает (не, что я - большой поклонник, делают, я признаю). Различные графические фронтэнды существуют, и даже IDE, но мне не нравится ни один из них.
Вы могли уточнить вид вещей, в которых Вы надеетесь сделать, что касается программирования Linux? Это могло бы иметь большую часть того, что Вы надеетесь пройти, независимо.